SQLite
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> SQLite

SQLite - Sao lưu cơ sở dữ liệu vào tệp

Cách sao lưu cơ sở dữ liệu SQLite vào một tệp.

Có một số cách sao lưu cơ sở dữ liệu SQLite vào tệp.

  • Sử dụng .backup lệnh.
  • Sử dụng .clone lệnh.
  • Sử dụng .dump lệnh.
  • Sao chép tệp trên hệ thống tệp.

.backup Lệnh

Lệnh này sao lưu cơ sở dữ liệu vào một tệp. Nó chấp nhận bí danh cơ sở dữ liệu (tức là cơ sở dữ liệu để sao lưu) và tên tệp (cho tệp sao lưu).

Nếu bạn bỏ qua bí danh cơ sở dữ liệu, nó sẽ sử dụng main cơ sở dữ liệu.

Đây là một ví dụ:

.backup mybackup.db

Thao tác này sẽ tạo một tệp có tên backup.db chứa một bản sao lưu của cơ sở dữ liệu. Bạn có thể đính kèm nó trở lại trình bao dòng lệnh SQLite3 nếu được yêu cầu (sau đó thực hiện .databases để xem danh sách các kết nối cơ sở dữ liệu):

sqlite> ATTACH DATABASE 'mybackup.db' AS MyBackup;
sqlite> .databases
seq  name             file                                                      
---  ---------------  ----------------------------------------------------------
0    main             /Users/quackit/sqlite/music.db                            
1    temp                                                                       
2    MyBackup         /Users/quackit/sqlite/mybackup.db    

Trong thực tế, bạn có thể sẽ sao lưu cơ sở dữ liệu sang một vị trí khác. Do đó, bạn sẽ cung cấp đường dẫn tệp đầy đủ trong .backup yêu cầu. Ví dụ:.backup /remote/folder/mybackup.db

.clone Lệnh

.clone tương tự như lệnh .backup yêu cầu. Tuy nhiên, .clone chỉ sử dụng cơ sở dữ liệu hiện tại, vì vậy bạn không thể chỉ định cơ sở dữ liệu khác để sao chép.

Để sao chép cơ sở dữ liệu hiện tại, hãy nhập .clone theo sau là tên của tệp cơ sở dữ liệu cho dữ liệu được sao chép.

Như thế này:

.clone myclone.db

Đang chạy trông như thế này:

sqlite> .clone myclone.db
Artists... done
Albums... done
Albums2... done
Catalog... done
Genres... done

Bạn có thể đính kèm cơ sở dữ liệu nhân bản giống như cơ sở dữ liệu khác:

sqlite> ATTACH DATABASE 'myclone.db' AS MyClone;
sqlite> .databases
seq  name             file                                                      
---  ---------------  ----------------------------------------------------------
0    main             /Users/quackit/sqlite/music.db                            
1    temp                                                                       
2    MyBackup         /Users/quackit/sqlite/mybackup.db                         
3    MyClone          /Users/quackit/sqlite/myclone.db      

.dump Lệnh

Bạn có thể sử dụng .dump lệnh để kết xuất cơ sở dữ liệu vào tệp ASCII. Ví dụ:bạn có thể kết xuất nó vào một tệp .sql có chứa các câu lệnh SQL để tạo cơ sở dữ liệu từ đó.

Kết xuất toàn bộ DB

Ví dụ này kết xuất music.db tập tin vào music.sql .

sqlite3 music.db .dump > music.sql

Nội dung của music.sql (yêu cầu cuộn):

PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE Artists(
  ArtistId    INTEGER PRIMARY KEY, 
  ArtistName  TEXT NOT NULL
, Bio TEXT);
INSERT INTO "Artists" VALUES(1,'Joe Satriani',NULL);
INSERT INTO "Artists" VALUES(2,'Steve Vai',NULL);
INSERT INTO "Artists" VALUES(3,'The Tea Party',NULL);
INSERT INTO "Artists" VALUES(4,'Noiseworks',NULL);
INSERT INTO "Artists" VALUES(5,'Wayne Jury',NULL);
INSERT INTO "Artists" VALUES(6,'Mr Percival',NULL);
INSERT INTO "Artists" VALUES(7,'Iron Maiden',NULL);
INSERT INTO "Artists" VALUES(8,'Atmasphere','Australian jazz band centred around polyrhythms.');
INSERT INTO "Artists" VALUES(9,'Ian Moss',NULL);
INSERT INTO "Artists" VALUES(10,'Magnum',NULL);
INSERT INTO "Artists" VALUES(13,'Primus',NULL);
INSERT INTO "Artists" VALUES(14,'Pat Metheny',NULL);
INSERT INTO "Artists" VALUES(15,'Frank Gambale',NULL);
INSERT INTO "Artists" VALUES(16,'Mothers of Invention',NULL);
CREATE TABLE Albums(
  AlbumId     INTEGER PRIMARY KEY, 
  AlbumName   TEXT NOT NULL,
  ReleaseDate TEXT,
  ArtistId INTEGER NOT NULL,
  FOREIGN KEY(ArtistId) REFERENCES Artists(ArtistId)
);
INSERT INTO "Albums" VALUES(1,'Killers','1981',7);
INSERT INTO "Albums" VALUES(2,'Powerslave','1984',7);
INSERT INTO "Albums" VALUES(3,'Surfing with the Alien','1987',1);
INSERT INTO "Albums" VALUES(4,'Heavy as a Really Heavy Thing','1995',11);
INSERT INTO "Albums" VALUES(6,'Out of the Loop','2007',6);
INSERT INTO "Albums" VALUES(7,'Suck on This','1989',13);
INSERT INTO "Albums" VALUES(8,'Pork Soda','1993',13);
INSERT INTO "Albums" VALUES(9,'Sailing the Seas of Cheese','1991',13);
INSERT INTO "Albums" VALUES(10,'Flying in a Blue Dream','1989',1);
INSERT INTO "Albums" VALUES(11,'Black Swans and Wormhole Wizards','2010',1);
INSERT INTO "Albums" VALUES(12,'Somewhere in Time','1986',7);
CREATE TABLE Albums2(
  AlbumId INT,
  AlbumName TEXT,
  ArtistId INT
);
INSERT INTO "Albums2" VALUES(1,'Killers',7);
INSERT INTO "Albums2" VALUES(2,'Powerslave',7);
INSERT INTO "Albums2" VALUES(3,'Surfing with the Alien',1);
INSERT INTO "Albums2" VALUES(4,'Heavy as a Really Heavy Thing',11);
INSERT INTO "Albums2" VALUES(5,'Yummy Yummy',17);
INSERT INTO "Albums2" VALUES(6,'Out of the Loop',6);
INSERT INTO "Albums2" VALUES(7,'Suck on This',13);
INSERT INTO "Albums2" VALUES(8,'Pork Soda',13);
INSERT INTO "Albums2" VALUES(9,'Sailing the Seas of Cheese',13);
INSERT INTO "Albums2" VALUES(10,'Flying in a Blue Dream',1);
INSERT INTO "Albums2" VALUES(11,'Black Swans and Wormhole Wizards',1);
INSERT INTO "Albums2" VALUES(12,'Somewhere in Time',7);
INSERT INTO "Albums2" VALUES(13,'Big Red Car',17);
CREATE TABLE Catalog(
  "AlbumId" TEXT,
  "AlbumName" TEXT,
  "ArtistName" TEXT
);
INSERT INTO "Catalog" VALUES('1','Killers','Iron Maiden');
INSERT INTO "Catalog" VALUES('2','Powerslave','Iron Maiden');
INSERT INTO "Catalog" VALUES('12','Somewhere in Time','Iron Maiden');
INSERT INTO "Catalog" VALUES('3','Surfing with the Alien','Joe Satriani');
INSERT INTO "Catalog" VALUES('10','Flying in a Blue Dream','Joe Satriani');
INSERT INTO "Catalog" VALUES('11','Black Swans and Wormhole Wizards','Joe Satriani');
INSERT INTO "Catalog" VALUES('6','Out of the Loop','Mr Percival');
INSERT INTO "Catalog" VALUES('7','Suck on This','Primus');
INSERT INTO "Catalog" VALUES('8','Pork Soda','Primus');
INSERT INTO "Catalog" VALUES('9','Sailing the Seas of Cheese','Primus');
CREATE TABLE Genres(
  GenreId    INTEGER PRIMARY KEY, 
  Genre      TEXT NOT NULL
);
INSERT INTO "Genres" VALUES(1,'Rock');
INSERT INTO "Genres" VALUES(2,'Country');
INSERT INTO "Genres" VALUES(3,'Pop');
INSERT INTO "Genres" VALUES(4,'Comedy');
INSERT INTO "Genres" VALUES(5,'Jazz');
INSERT INTO "Genres" VALUES(6,'Blues');
INSERT INTO "Genres" VALUES(7,'Techno');
COMMIT;

Sao chép tệp

Các phương pháp trên cho phép bạn sao lưu cơ sở dữ liệu từ bên trong trình bao dòng lệnh SQLite3.

Bạn cũng có thể sao lưu cơ sở dữ liệu đơn giản bằng cách sao chép / dán tệp vật lý trên hệ thống tệp.

Nếu bạn không chắc chắn về vị trí của tệp vật lý, bạn có thể sử dụng .databases lệnh để tìm vị trí:

Tệp tên
sqlite> .databases
seq  name             file                                                      
---  ---------------  ----------------------------------------------------------
0    main             /Users/quackit/sqlite/music.db                            
1    temp                                                                

Vì vậy, đã trang bị kiến ​​thức ở trên, bây giờ tôi có thể điều hướng đến / Users / quackit / sqlite / thư mục, sao chép music.db và dán nó vào một vị trí an toàn.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tìm vi phạm khóa ngoại trong SQLite

  2. SQLite AVG

  3. Loại bỏ các kết quả trùng lặp khỏi Count () trong SQLite

  4. Tạo câu lệnh INSERT từ kết quả truy vấn SQLite

  5. Tìm nạp dữ liệu từ sql databse trong flashing datewise?