Câu hỏi. Tôi có một số bảng trên cơ sở dữ liệu trên phiên bản máy chủ PostgreSQL. Tôi muốn sao chép lược đồ và dữ liệu sang một phiên bản máy chủ PostgreSQL khác. Có quy trình đơn giản nào sử dụng pgAdmin để hoàn thành tác vụ này không? Show
Trả lời. Để có nỗ lực di chuyển lớn hơn, tôi đề xuất phương pháp pg_dump\pg_restore nhưng một phương pháp đơn giản là sử dụng chức năng sao lưu trên pgAdmin. Bạn cũng có thể sử dụng chức năng sao lưu trong pgAdmin. Đây là các bước
Đọc thêm về PostgreSQL & di chuyển Sự thật về việc di chuyển SQL Server sang PostgreSQL Tiêu điểm trên Babelfish cho Aurora PostgreSQL Cách sử dụng PostgreSQL pg_basebackup Tác giả. lan man (http. //www. dba-ninja. com) Chia sẻ Đôi khi bạn có thể cần sao chép hoặc chuyển dữ liệu từ cơ sở dữ liệu này sang cơ sở dữ liệu khác trong PostgreSQL. Rất dễ thực hiện việc này bằng hàm dblink trong PostgreSQL. Trong bài viết này, chúng ta sẽ tìm hiểu cách sao chép/truyền dữ liệu từ cơ sở dữ liệu này sang cơ sở dữ liệu khác trong PostgreSQL Cách sao chép/chuyển dữ liệu từ cơ sở dữ liệu này sang cơ sở dữ liệu khác trong PostgreSQLDưới đây là các bước để sao chép/chuyển dữ liệu từ cơ sở dữ liệu này sang cơ sở dữ liệu khác trong PostgreSQL. Chúng ta sẽ xem xét hai cách để thực hiện việc này – sử dụng dblink và sử dụng câu lệnh sao chép bảng 1. Sử dụng dblinkdblink cho phép bạn dễ dàng tìm nạp dữ liệu từ cơ sở dữ liệu khác cục bộ hoặc từ xa. Đây là cú pháp của nó dblink('connection string', 'your query') Dưới đây là một ví dụ sử dụng dblink để tìm nạp dữ liệu từ bảng sản phẩm trong bán hàng cơ sở dữ liệu từ xa. Thay thế hdd bằng địa chỉ IP hoặc URL của máy chủ cơ sở dữ liệu, xxx bằng tên người dùng cơ sở dữ liệu, yyy bằng mật khẩu của nó, bán hàng bằng tên cơ sở dữ liệu của bạn và sửa đổi truy vấn đã chọn theo yêu cầu của bạn dblink('host=hhh user=xxx password=yyy dbname=sales', 'SELECT id, name, price FROM products') Xin lưu ý, trong trường hợp trên, bạn cần chỉ định các tham số kết nối theo cách được phân tách bằng dấu cách Kết quả của hàm dblink ở trên sẽ giống như bất kỳ câu lệnh chọn nào. Bạn có thể sử dụng nó trong truy vấn để chèn dữ liệu từ xa đã tìm nạp vào bảng cục bộ của mình, như minh họa bên dưới INSERT INTO local_products(id, name, price) SELECT a, b, c FROM dblink('host=hhh user=xxx password=xxx dbname=sales', 'SELECT id, name, price FROM products') AS x(id integer, name varchar(10), price integer) Nếu bạn cần tìm nạp dữ liệu từ xa một cách thường xuyên, bạn nên lưu trữ chuỗi kết nối, làm biến cho người dùng lại hoặc tạo ánh xạ người dùng máy chủ. Sau đó, bạn có thể dễ dàng sử dụng phím tắt dblink('yourdbname','query') 2. Sử dụng lệnh sao chép dữ liệuĐây là cú pháp cơ bản để sao chép dữ liệu từ source_db sang Destination_db bằng cách sử dụng lệnh sao chép dữ liệu. Xin lưu ý lệnh sau sẽ hoạt động cho PostgreSQL 9. 4 hoặc cao hơn $ psql source_db -c 'COPY data_table TO stdout' | psql destination_db -c 'COPY data_table FROM stdin' Trong lệnh trên, source_db là cơ sở dữ liệu nguồn từ đó dữ liệu sẽ được sao chép và Destination_db là cơ sở dữ liệu đích mà dữ liệu sẽ được sao chép. Dưới đây là một ví dụ để sao chép bảng sản phẩm từ cơ sở dữ liệu bán hàng sang cơ sở dữ liệu new_sales $ psql sales -c 'COPY products TO stdout' | psql new_sales -c 'COPY products FROM stdin' 3. Sử dụng Mệnh đề MẫuNếu bạn đang chạy PostgreSQL 9. 0 trở lên, bạn cũng có thể sử dụng từ khóa TEMPLATE để sao chép cơ sở dữ liệu khác. Bạn cần đăng nhập vào phiên PostgreSQL để có thể thực thi lệnh sau psql> CREATE DATABASE new_database TEMPLATE original_database; Trong trường hợp này, cơ sở dữ liệu mới sẽ là bản sao của cơ sở dữ liệu gốc. Nó sẽ có cùng một bảng, lược đồ, mã hóa và dữ liệu Tuy nhiên, điều quan trọng cần nhớ là không phiên nào khác có thể được kết nối với cơ sở dữ liệu ban đầu của bạn khi bạn đang chạy lệnh trên Trong bài viết này, chúng ta đã học được 3 cách khác nhau để sao chép/truyền dữ liệu từ cơ sở dữ liệu này sang cơ sở dữ liệu khác trong PostgreSQL Làm cách nào để sao chép tất cả các bảng từ lược đồ này sang lược đồ khác trong Postgres?Sao chép dữ liệu giữa các bảng . TẠO BẢNG [Bảng để sao chép sang] AS [Bảng để sao chép từ] KHÔNG CÓ DỮ LIỆU; CHÈN VÀO [Bảng cần sao chép] CHỌN [Cột cần sao chép] TỪ [Bảng cần sao chép] WHERE [Điều kiện tùy chọn]; TẠO BẢNG [Bảng mới] NHƯ BẢNG [Bảng cũ] KHÔNG CÓ DỮ LIỆU; Làm cách nào để sao chép cơ sở dữ liệu trong PostgreSQL?Để tạo một bản sao của cơ sở dữ liệu, hãy chạy lệnh sau trong psql. . CREATE DATABASE [Cơ sở dữ liệu cần tạo] VỚI TEMPLATE [Cơ sở dữ liệu cần sao chép] OWNER [Tên người dùng của bạn]; CREATE DATABASE [Cơ sở dữ liệu cần tạo] VỚI TEMPLATE [Cơ sở dữ liệu cần sao chép] OWNER [Tên người dùng của bạn]; CHỌN pg_terminate_backend(pg_stat_activity Bạn có thể tham gia các bảng từ các cơ sở dữ liệu Postgres khác nhau không?Ngay cả khi hai cơ sở dữ liệu đều là cơ sở dữ liệu Postgresql, bạn sẽ không thể tham gia . Các bảng phải bắt nguồn từ cùng một cơ sở dữ liệu.
Dblink trong Postgres là gì?dblink là mô-đun hỗ trợ kết nối với các cơ sở dữ liệu PostgreSQL khác từ bên trong phiên cơ sở dữ liệu . Xem thêm postgres_fdw, cung cấp chức năng tương tự bằng cách sử dụng cơ sở hạ tầng hiện đại và tuân thủ tiêu chuẩn hơn. Trước đó. |