Bagaimana cara mengambil cadangan tingkat tabel (dump) di MS SQL Server 2005/2008?
Bagaimana cara mengambil cadangan tingkat tabel (dump) di MS SQL Server 2005/2008?
Jawaban:
Anda tidak dapat menggunakan BACKUP DATABASE
perintah untuk membuat cadangan satu tabel, kecuali tentu saja tabel tersebut dialokasikan untuk tabel itu sendiri FILEGROUP
.
Apa yang dapat Anda lakukan, seperti yang Anda sarankan adalah Mengekspor data tabel ke file CSV. Sekarang untuk mendapatkan definisi tabel Anda, Anda dapat 'Script out' CREATE TABLE
scriptnya.
Anda dapat melakukan ini dalam SQL Server Management Studio, dengan:
klik kanan Database> Tasks> Generate Script
Anda kemudian dapat memilih tabel yang ingin Anda skrip dan juga memilih untuk menyertakan objek terkait, seperti batasan dan indeks.
untuk menyelesaikannya DATA
hanya dengan schema
, Anda harus memilih Advanced
pada tab opsi set scripting, dan di GENERAL
bagian setel Types of data to script
pilihSchema and Data
Semoga ini bisa membantu tetapi jangan ragu untuk menghubungi saya secara langsung jika Anda memerlukan bantuan lebih lanjut.
Advanced
di tab set scripting options, dan di bagian GENERAL setel Types of data to script
pilih Schema and Data
. Itu tidak jelas saat pertama kali saya melakukannya.
Saya menggunakan utilitas penyalinan massal untuk mencapai pencadangan tingkat tabel
untuk mengekspor:
bcp.exe "select * from [MyDatabase].dbo.Customer " queryout "Customer.bcp" -N -S localhost -T -E
untuk mengimpor:
bcp.exe [MyDatabase].dbo.Customer in "Customer.bcp" -N -S localhost -T -E -b 10000
seperti yang Anda lihat, Anda dapat mengekspor berdasarkan kueri apa pun, sehingga Anda bahkan dapat melakukan pencadangan tambahan dengan ini. Plus, ini bisa scriptable dibandingkan dengan metode lain yang disebutkan di sini yang menggunakan SSMS.
Berikut langkah-langkah yang Anda butuhkan. Step5 penting jika Anda menginginkan data. Langkah 2 adalah tempat Anda dapat memilih tabel individual.
Versi EDIT tumpukan tidak cukup dapat dibaca ... berikut adalah gambar ukuran penuh http://i.imgur.com/y6ZCL.jpg
Anda dapat menjalankan kueri di bawah ini untuk mengambil cadangan dari tabel yang ada yang akan membuat tabel baru dengan struktur yang ada dari tabel lama bersama dengan datanya.
select * into newtablename from oldtablename
Untuk menyalin hanya struktur tabel, gunakan kueri di bawah ini.
select * into newtablename from oldtablename where 1 = 2
Ini mirip dengan solusi qntmfred , tetapi menggunakan tabel dump langsung. Opsi ini sedikit lebih cepat (lihat dokumen BCP ):
untuk mengekspor:
bcp "[MyDatabase].dbo.Customer " out "Customer.bcp" -N -S localhost -T -E
untuk mengimpor:
bcp [MyDatabase].dbo.Customer in "Customer.bcp" -N -S localhost -T -E -b 10000
Jika Anda mencari sesuatu seperti MySQL DUMP
, maka kabar baiknya: SQL Server 2008 Management Studio menambahkan kemampuan itu.
Di SSMS, cukup klik kanan pada DB yang dimaksud dan pilih Tasks> Generate Scripts . Kemudian di halaman ke-2 dari wizard opsi, pastikan untuk memilih bahwa Anda juga ingin datanya ditulis , dan itu akan menghasilkan berapa jumlah DUMP
file untuk Anda.
Buat grup file baru, letakkan tabel ini di atasnya, dan buat cadangan filegroup ini saja.
Anda dapat menggunakan Database Publishing Wizard gratis dari Microsoft untuk menghasilkan file teks dengan skrip SQL (CREATE TABLE dan INSERT INTO).
Anda dapat membuat file seperti itu untuk satu tabel, dan Anda dapat "memulihkan" tabel lengkap termasuk datanya hanya dengan menjalankan skrip SQL.
Saya tidak tahu, apakah akan cocok dengan masalah yang dijelaskan di sini. Saya harus mengambil cadangan inkremental meja! (Hanya data baru yang dimasukkan yang harus disalin). Saya dulu mendesain paket DTS dimana.
Saya mengambil catatan baru (berdasarkan kolom 'status') dan mentransfer data ke tujuan. (Melalui 'Transform Data Task')
Lalu saya baru saja memperbarui kolom 'status'. (Melalui 'Jalankan Tugas SQL')
Saya harus memperbaiki 'alur kerja' dengan benar.
Setiap model pemulihan memungkinkan Anda mencadangkan seluruh atau sebagian database SQL Server atau file individual atau grup file dari database. Pencadangan tingkat tabel tidak dapat dibuat .
Anda mungkin memiliki dua opsi, karena SQL Server tidak mendukung pencadangan tabel. Keduanya akan dimulai dengan pembuatan skrip tabel. Kemudian Anda dapat menggunakan opsi Tabel Skrip - INSERT yang akan menghasilkan banyak pernyataan penyisipan, atau Anda dapat menggunakan layanan Integrasi (DTS dengan 2000) atau serupa untuk mengekspor data sebagai CSV atau serupa.
BMC Recovery Manager (sebelumnya dikenal sebagai SQLBacktrack) memungkinkan pemulihan titik waktu objek individu dalam database (alias tabel). Itu tidak murah tetapi melakukan pekerjaan yang fantastis: http://www.bmc.com/products/proddocview/0,2832,19052_19429_70025639_147752,00.html
http://www.bmc.com/products/proddocview/0,2832,19052_19429_67883151_147636,00.html
Jika Anda ingin memulihkan tabel setelah seseorang keliru menghapus baris darinya, Anda mungkin bisa melihat snapshot database. Anda dapat memulihkan tabel dengan mudah (atau bagian dari baris) dari snapshot. Lihat http://msdn.microsoft.com/en-us/library/ms175158.aspx
Aplikasi gratis bernama SqlTableZip akan menyelesaikan pekerjaan. Pada dasarnya, Anda menulis apa saja kueri (yang, tentu saja juga dapat [pilih * dari tabel]) dan aplikasi membuat file terkompresi dengan semua data, yang dapat dipulihkan nanti.
Handy Backup secara otomatis membuat file dump dari MS SQL Server, termasuk MSSQL 2005/2008. Sampah ini adalah file biner tingkat tabel, berisi salinan persis dari konten database tertentu.
Untuk membuat dump sederhana dengan Handy Backup, ikuti instruksi selanjutnya:
Sekarang jalankan tugas baru Anda dengan mengklik ikon di depan namanya, atau tunggu waktu yang dijadwalkan. Handy Backup secara otomatis akan membuat dump untuk database Anda. Kemudian buka tujuan cadangan Anda. Anda akan menemukan folder (atau beberapa folder) dengan backup MS SQL Anda. Folder seperti itu akan berisi file dump tingkat tabel, yang terdiri dari beberapa tabel biner dan pengaturan yang dikompresi ke dalam satu ZIP.
Handy Backup dapat menyimpan dump untuk MySQL, MariaDB, PostgreSQL, Oracle, IBM DB2, Lotus Notes dan database SQL generik apa pun yang memiliki driver ODBC. Beberapa dari database ini memerlukan langkah tambahan untuk membuat koneksi antara DBMS dan Handy Backup.
Alat yang dijelaskan di atas sering membuang database SQL sebagai urutan perintah SQL tingkat tabel, membuat file ini siap untuk modifikasi manual apa pun yang Anda perlukan.