Tôi mới trong cơ sở dữ liệu Hsqldb. Tôi muốn biết cách sao lưu và khôi phục cơ sở dữ liệu Hsqldb thông qua mã java.Sao lưu và khôi phục cơ sở dữ liệu Hsqldb trong mã java
Trả lời
Sử dụng lệnh BACKUP DATABASE TO
.
Dưới đây là một liên kết đến tài liệu:
HSQLDB System Management Documentation
tôi đã không kiểm tra này, nhưng tôi tưởng tượng nó là một cái gì đó dọc theo dòng:
String backup = "BACKUP DATABASE TO " + "'" + filePath + "' BLOCKING";
PreparedStatement preparedStatement = connection.prepareStatement(backup);
preparedStatement.execute();
Bạn sẽ muốn quấn nó trong một khối try-catch tất nhiên.
Theo như khôi phục db đi, tôi nghĩ bạn phải thực hiện điều đó trong khi cơ sở dữ liệu đang ngoại tuyến bằng ứng dụng DbBackupMain. Vì vậy, bạn sẽ thực hiện lệnh này tại cửa sổ dòng lệnh:
java -cp hsqldb.jar org.hsqldb.lib.tar.DbBackupMain --extract tardir/backup.tar dbdir
bằng cách sử dụng 'DbBackupMain', Tôi có thể chỉ định tên đường dẫn cục bộ trong ** tardir * * giữ chỗ? Tôi muốn nó đến một địa điểm cụ thể. Tôi trích xuất ** HSQL ** DB trong D: \ Database \ hsqldb \ path và cơ sở dữ liệu của tôi nằm trong D: \ Database \ HSQLDatabase \ path. Làm thế nào tôi có thể xác định điều này để tạo sao lưu? trong D: \ Database \ Backup \ đường dẫn này? Vui lòng giúp – Bhat
bằng cách sử dụng bản sao lưu thực thi 'PreparedStatement' đang tạo. Nhưng nó đang tạo nhiều bản sao trong đường dẫn vị trí được chỉ định. làm thế nào để tôi sửa đổi để cập nhật/hoàn toàn cho một tồn tại? Để tôi có thể quản lý một bản sao của tập tin sao lưu – Bhat
Mỗi cơ sở dữ liệu HyperSQL được gọi là một cửa hàng . Có ba loại danh mục tùy thuộc vào cách dữ liệu được lưu trữ.
Các loại dữ liệu danh mục:
mem: lưu trữ hoàn toàn trong RAM - mà không có bất kỳ sự kiên trì vượt qua cuộc sống quá trình JVM của
tập tin: lưu trữ trong các tập tin hệ thống tập tin
res: được lưu trữ trong tài nguyên Java, chẳng hạn như Jar và luôn đọc chỉ
Để sao lưu danh mục đang chạy, nhận kết nối JDBC và đưa ra lệnh BACKUP DATABASE trong SQL. Trong dạng đơn giản nhất của nó, định dạng lệnh dưới đây sẽ sao lưu cơ sở dữ liệu dưới dạng tệp .tar.gz duy nhất vào thư mục đã cho.
BACKUP DATABASE TO <directory name> BLOCKING [ AS FILES ]
Tên thư mục phải kết thúc bằng dấu gạch chéo để phân biệt nó làm thư mục và toàn bộ chuỗi phải có dấu nháy đơn như sau: 'subdir/nesteddir /'.
Để sao lưu danh mục ngoại tuyến, danh mục phải ở trạng thái tắt. Bạn sẽ chạy một lệnh Java như
java -cp hsqldb.jar org.hsqldb.lib.tar.DbBackupMain --save tardir/backup.tar dbdir/dbname
. Trong ví dụ này, cơ sở dữ liệu có tên dbname và nằm trong thư mục dbdir. Bản sao lưu được lưu vào một tệp có tên backup.tar trong thư mục tardir.
nơi tardir/backup.tar là đường dẫn tệp tới tệp * .tar hoặc * .tar.gz được tạo trong hệ thống tệp của bạn và dbdir/dbname là đường dẫn tệp đến tên cơ sở tệp danh mục.
Bạn sử dụng DbBackup trên dòng lệnh hệ điều hành của mình để khôi phục danh mục từ bản sao lưu.
java -cp hsqldb.jar org.hsqldb.lib.tar.DbBackupMain --extract tardir/backup.tar dbdir
nơi tardir/backup.tar là một đường dẫn tập tin vào * .tar hoặc file * .tar.gz để được đọc, và dbdir là thư mục đích để trích xuất các tập tin Danh mục thành. Lưu ý rằng dbdir chỉ định đường dẫn thư mục, không có tên cơ sở của tệp danh mục. Các tệp sẽ được tạo bằng các tên được lưu trữ trong tệp tar. Để biết thêm chi tiết refer
thực sự tốt !!! – Xelian
Vì vậy, trong java + Spring + JdbcTemplate
Sao lưu (On-line):
@Autowired
public JdbcTemplate jdbcTemplate;
public void mainBackupAndRestore() throws IOException {
...
jdbcTemplate.execute("BACKUP DATABASE TO '" + sourceFile.getAbsolutePath() + "' BLOCKING");
}
này sẽ tiết kiệm được .properties, .scripts và tập tin .lobs đến một tar trong sourceFile.getAbsolutePath().
Restore:
DbBackupMain.main(new String[] { "--extract", baseDir.getAbsolutePath(),
System.getProperty("user.home") + "/restoreFolder" });
này sẽ nhận được tập tin từ baseDir.getAbsolutePath() và sẽ đặt chúng trong USERHOME/restoreFolder nơi bạn có thể kiểm tra xem tất cả khôi phục là OK. thùy chứa dữ liệu lob/blob, tập lệnh chứa truy vấn được thực thi.
- 1. Quá trình sao lưu/khôi phục cơ sở dữ liệu
- 2. Postgresql - sao lưu cơ sở dữ liệu và khôi phục trên chủ sở hữu khác nhau?
- 3. Cách sao lưu và khôi phục cơ sở dữ liệu ORACLE 11g Giống như cơ sở dữ liệu SQL2005
- 4. smo khôi phục cơ sở dữ liệu
- 5. Android sao lưu và khôi phục cơ sở dữ liệu đến và đi từ SD-card
- 6. Khôi phục cơ sở dữ liệu Postgresql
- 7. Khôi phục cơ sở dữ liệu mysql từ sao lưu thư mục dữ liệu
- 8. Sử dụng Google Drive để sao lưu và khôi phục Cơ sở dữ liệu SQLite
- 9. Lưu trữ UUID trong cơ sở dữ liệu HSQLDB
- 10. Cách khôi phục cơ sở dữ liệu từ C#
- 11. Khôi phục bảng MySQL trở lại cơ sở dữ liệu
- 12. Khôi phục cơ sở dữ liệu trong Firebase
- 13. Cơ sở dữ liệu MySQL InnoDB khôi phục
- 14. mysql khôi phục cơ sở dữ liệu khác nhau
- 15. Sao lưu và khôi phục Ckan
- 16. cách thích hợp để sao lưu/khôi phục cơ sở dữ liệu rủi ro là gì?
- 17. Cách sao lưu/khôi phục cơ sở dữ liệu SQLite trên Android đến Dropbox
- 18. Khôi phục dữ liệu gốc được lưu dưới dạng "???????" từ cơ sở dữ liệu mysql
- 19. Lỗi mua lại khóa cơ sở dữ liệu và hsqldb
- 20. Cách xuất và khôi phục HSQLDB
- 21. khôi phục tất cả các cơ sở dữ liệu mysql từ một tập tin sql.gz --all-cơ sở dữ liệu
- 22. Cách khôi phục cơ sở dữ liệu từ tệp .bak (sao lưu cơ sở dữ liệu) trong trình cài đặt wix 3.9
- 23. Docker sao lưu và khôi phục MongoDB
- 24. Cách tạo và khôi phục bản sao lưu từ SqlAlchemy?
- 25. Khôi phục/sao lưu cơ sở dữ liệu Sql Server từ máy khách từ xa theo lập trình
- 26. Hiển thị tiến trình trong khi khôi phục cơ sở dữ liệu bằng PowerShell và SMO
- 27. Sao lưu cơ sở dữ liệu MySQL
- 28. Làm cách nào để khôi phục một cơ sở dữ liệu từ mysqldump chứa nhiều cơ sở dữ liệu?
- 29. Không thể khôi phục Cơ sở dữ liệu, Cơ sở dữ liệu đang được sử dụng theo phiên
- 30. Sao lưu và khôi phục với VirtualBox
Bạn không thể sao chép tệp db một cách đơn giản? – MadProgrammer
Vui lòng [tham khảo] (http://www.hsqldb.org/doc/2.0/guide/management-chapt.html#mtc_backup) – SparkOn