Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

SQL Server 2016 – Pengantar Peregangan Database

Tidak, bukan itu yang Anda cari

Dimulai dengan SQL Server 2016 Anda akan memiliki kemampuan untuk menyimpan bagian dari database di cloud. Kemampuan baru ini dikenal sebagai Stretch Database dan fitur ini akan bermanfaat bagi mereka yang perlu menyimpan data transaksional untuk jangka waktu yang lama dan mereka yang ingin menghemat uang dalam penyimpanan. Mampu memigrasikan data dengan mulus ke Microsoft Azure Cloud akan memberi Anda kemampuan untuk mengarsipkan data tanpa harus mengubah cara aplikasi Anda menanyakan data.

Di SQL Server 2016 Community Technology Preview 2 (CTP2), Stretch Database memigrasikan seluruh tabel. Jika database Anda sudah disiapkan untuk menyimpan data arsip di tabel terpisah dari data saat ini, Anda akan dapat dengan mudah memigrasikan data arsip ke Azure. Setelah Anda mengaktifkan Stretch Database, itu akan secara diam-diam memigrasikan data Anda ke Azure SQL Database. Stretch Database memanfaatkan kekuatan pemrosesan di Azure untuk menjalankan kueri terhadap data jarak jauh dengan menulis ulang kueri. Anda akan melihat ini sebagai operator "kueri jarak jauh" dalam rencana kueri.

Cara mudah untuk mengidentifikasi database dan tabel yang memenuhi syarat untuk mengaktifkan Stretch adalah dengan mengunduh dan menjalankan SQL Server 2016 Upgrade Advisor dan menjalankan Stretch Database Advisor. Aaron Bertrand (@AaronBertrand) menulis tentang ini baru-baru ini:

  • Identifikasi Tabel Kandidat untuk SQL Server 2016 Stretch Database

Batasan untuk Basis Data Peregangan

Tidak semua tabel memenuhi syarat untuk mengaktifkan Stretch. Properti tabel tertentu, tipe data dan kolom, batasan, dan indeks tidak didukung, seperti:

  • Tabel yang dioptimalkan memori dan direplikasi
  • Tabel yang berisi data FILESTREAM, gunakan Ubah Pelacakan atau Ubah Data
  • Tipe data seperti stempel waktu, sql_variant, XML, geografi, atau kolom yang Selalu Dienkripsi
  • Periksa dan batasan default atau batasan kunci asing yang mereferensikan tabel
  • XML, teks lengkap, spasial, penyimpanan kolom berkerumun, dan tampilan terindeks yang mereferensikan tabel berkemampuan Stretch
  • Anda tidak dapat menjalankan pernyataan UPDATE atau DELETE, atau menjalankan operasi CREATE INDEX atau ALTER INDEX pada tabel yang mendukung Peregangan

Untuk daftar lengkap batasan, Anda dapat mengunjungi:Persyaratan dan batasan untuk Stretch Database.

Menyiapkan Stretch Database

Memulai bukanlah tugas yang rumit. Anda akan memerlukan akun Azure dan kemudian mengaktifkan Stretch Database pada instance.

Untuk mengaktifkan Stretch Database pada instance, jalankan:

EXEC sys.sp_configure N'remote data archive', '1';
RECONFIGURE;
GO

Untuk demo ini saya akan menggunakan database AdventureWorks2014 pada contoh SQL Server 2016 CPT2. Saya akan mulai dengan membuat tabel baru:

USE [AdventureWorks2014];
GO
 
CREATE TABLE dbo.StretchTest
(
  FirstName VARCHAR(50),
  LastName  VARCHAR(50)
);
GO

Dan kemudian saya akan mengisi tabel uji StretchTest dengan beberapa data:

USE [AdventureWorks2014];
GO
 
INSERT INTO dbo.StretchTest(FirstName, LastName)
VALUES('Paul', 'Randal'),  ('Kimberly', 'Tripp'),('Jonathan', 'Kehayias'),
      ('Erin', 'Stellato'),('Glenn', 'Berry'),   ('Tim', 'Radney');
GO

Saya sekarang memiliki tabel yang dapat saya regangkan ke Microsoft Azure Cloud. Untuk melakukan ini, saya akan menggunakan GUI dengan mengklik kanan pada AdventureWorks2014, memilih Tugas, dan memilih Aktifkan Database untuk Peregangan.

Wizard Enable Database for Stretch akan terbuka, seperti di bawah ini:

Saya akan klik selanjutnya:

Dan masuk ke akun Microsoft Azure saya:

Saya kemudian diminta untuk memverifikasi akun mana yang ingin saya gunakan:

Kemudian saya memilih lokasi Azure mana yang ingin saya gunakan dan menentukan login dan kata sandi admin. Ketika Anda melakukan ini, pastikan untuk mencatat nama pengguna dan kata sandi admin karena Anda akan memerlukan ini di masa mendatang untuk menyambung kembali ke Database Azure SQL jika Anda harus memulihkan database.

Saya kemudian klik selanjutnya:

Dan klik Selesai dan database mulai menyediakan ke Azure SQL Database Server.

Saya baru saja membuat definisi server tertaut yang aman di server lokal saya yang memiliki database Azure SQL jarak jauh sebagai titik akhir. Saya dapat melihat ini di Objek Server, Server Tertaut serta di akun Azure saya di bawah Database SQL. Perhatikan bahwa hanya proses sistem yang dapat menggunakan server tertaut ini; login pengguna tidak dapat mengeluarkan kueri melalui server tertaut ke titik akhir jarak jauh.

Sekarang Stretch Database diaktifkan untuk instance dan untuk database AdventureWorks2014 sekarang saya dapat meregangkan tabel baru saya. Untuk meregangkan tabel ke Azure, saya perlu mengubah tabel dan mengaktifkan arsip data jarak jauh.

USE [AdventureWorks2014];
GO
 
ALTER TABLE [StretchTest]
ENABLE REMOTE_DATA_ARCHIVE WITH ( MIGRATION_STATE = ON );
GO

Selain fitur baru dengan SQL Server 2016, ada beberapa DMV baru juga. Untuk memantau migrasi data ke Azure, Anda dapat meminta sys.dm_db_rda_migration_status. Ketika saya menanyakan DMV setelah mengaktifkan arsip data jarak jauh, saya dapat melihat bahwa 6 baris telah dimigrasikan:

Pencadangan dan Pemulihan Database Peregangan

Saat ini di SQL Server 2016 CTP2 saat database yang mendukung peregangan dicadangkan, cadangan dangkal dibuat yang tidak menyertakan data yang telah dimigrasikan ke database Azure SQL. Diharapkan dengan rilis RTM SQL Server 2016 yang mencadangkan database yang mendukung Peregangan akan membuat cadangan mendalam yang akan berisi data lokal dan data yang diregangkan.

Saat memulihkan database yang diaktifkan Peregangan, Anda harus menyambungkan kembali database lokal ke Database Azure SQL jarak jauh. Anda melakukan ini dengan menjalankan prosedur tersimpan sys.sp_reauthorize_remote_data_archive sebagai db_owner.

Jika sekarang saya mencadangkan database AdventureWorks2014 yang mengaktifkan Stretch dan memulihkannya, saya tidak akan lagi dapat menanyakan tabel StretchTest sampai saya menyambungkan kembali ke Azure SQL Database dengan menjalankan:

USE [AdventureWorks2014];
GO
 
EXEC sys.sp_reauthorize_remote_data_archive @azure_username, @azure_password;
GO

Setelah terhubung kembali, saya mendapatkan pesan yang mirip dengan yang di bawah ini dan kemudian saya dapat menanyakan data yang Diregangkan sekali lagi:

Menyalin basis data jarak jauh 'RDAAdventureWorks201467B6D9D4-E8E0-4C54-B3EF-7C2D3F1326C4' ke basis data jarak jauh 'RDAAdventureWorks2014660B555C-8DD1-4750-9A04-2868CD1C646D'.

Menunggu penyalinan basis data jarak jauh selesai.
<>
br />Basis data jarak jauh 'RDAAdventureWorks2014660B555C-8DD1-4750-9A04-2868CD1C646D' telah selesai menyalin, dan sekarang online.

Saat memulihkan database berkemampuan Stretch ke instans lain, instans tersebut harus memiliki "arsip data jarak jauh yang diaktifkan". Setelah Anda memulihkan database dan mengaktifkan "arsip data jarak jauh", semua yang diperlukan adalah menyambung kembali ke Database Azure SQL dengan menjalankan prosedur tersimpan sys.sp_reauthorize_remote_data_archive.

Pencadangan untuk Azure SQL Databases untuk tingkat layanan Basic, Standard, dan Premium dilakukan setiap jam. Periode penyimpanan cadangan bervariasi tergantung pada tingkat tingkat layanan. Pada saat penulisan, untuk dasar adalah 7 hari, standar 14 hari, dan premium adalah 35 hari. Anda dapat memulihkan Database Azure SQL dengan menggunakan portal web Microsoft Azure.

Batalkan migrasi Data

Untuk memigrasikan data kembali ke penyimpanan lokal dari Azure SQL Database, Anda perlu membuat tabel lokal baru dengan skema yang sama seperti tabel yang mendukung Peregangan. Anda kemudian harus menyalin data dari tabel yang mendukung Peregangan ke tabel lokal baru. Setelah data disalin, Anda menjatuhkan tabel berkemampuan Stretch dan mengganti nama tabel lokal baru menjadi nama tabel yang mendukung Stretch yang baru saja dijatuhkan.

Anda hanya dapat menonaktifkan Stretch untuk database setelah semua tabel yang mendukung Stretch telah dihapus. Jika Anda menghapus database yang diaktifkan untuk Stretch, database lokal akan dihapus tetapi data jarak jauh tidak; Anda harus menghapus database jarak jauh dari portal manajemen Azure.

Ringkasan

Stretch Database adalah cara mudah untuk memigrasikan data arsip ke Microsoft Azure, jika database Anda mendukungnya. Saat ini di SQL Server 2016 CTP2 terdapat banyak batasan dengan properti tabel, data, dan kolom, tipe data dan kolom, batasan, dan indeks. Jika Anda tidak dibatasi oleh batasan tersebut, maka Stretch Database adalah cara sederhana untuk memigrasikan data historis ke Azure SQL Database dan mengosongkan penyimpanan lokal yang berharga. Mengelola pencadangan akan menjadi sedikit lebih rumit karena data Anda akan dibagi antara di lokasi dan di cloud.

Saya berharap pembatasan ini dicabut dalam rilis RTM, dan saya yakin banyak dari Anda akan dapat menggunakan fitur keren ini.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perbarui tabel menggunakan GABUNG di SQL Server?

  2. Apa Makna Pembelajaran Mesin bagi Profesional Basis Data

  3. @@ROWCOUNT – Dapatkan Jumlah Baris yang Dipengaruhi oleh Pernyataan Terakhir di SQL Server

  4. Bagaimana cara mengembalikan beberapa set hasil dengan SqlCommand?

  5. Cara Mengembalikan Hasil Kueri sebagai Daftar Dipisahkan Koma di SQL Server – STRING_AGG()