Как скопировать таблицы и их столбцы Specifi c в другую базу данных в Oracle - PullRequest
1 голос
/ 17 февраля 2020

У меня огромный размер Oracle ДБ, и для отчетов запросы работают слишком медленно из-за сетевого трафика c. Инструменты хранилища данных дороги, поэтому я решил создать новую базу данных и загружать ее из основной базы данных каждый квартал. Я был свободен sh в компании, и я не работаю в качестве администратора базы данных, поэтому я работал над 48 различными SQL запросами, чтобы определить, какие таблицы и столбцы БД используются для составления отчетов, и закончил. Теперь я знаю, какие таблицы и столбцы в БД используются. На этом этапе я хотел спросить лучшие методы для создания новой базы данных с теми же именами таблиц и столбцов с данными основной базы данных?

1 Ответ

1 голос
/ 17 февраля 2020
  1. В Target (где необходимо создать таблицы) войдите в систему как пользователь DBA и предоставьте привилегию создания ссылки на базу данных пользователю, которому будут принадлежать эти таблицы. Примерно так: grant create database link to adnan;

  2. Войдите как пользователь, которому будет принадлежать таблица, а затем создайте личную ссылку на базу данных

CREATE DATABASE LINK dblink CONNECT TO [username at sourcedb] IDENTIFIED BY [sourcedb] user password> USING '[remote_database_name_in_tnsnames.ora file or actual connect identifier]';

использование строки подключения напрямую вместо tnsnames.ora- CREATE DATABASE LINK dblink CONNECT TO remote_user IDENTIFIED BY password USING '(DESCRIPTION= (ADDRESS=(PROTOCOL=TCP)(HOST=oracledb.example.com)(PORT=1521)) (CONNECT_DATA=(SERVICE_NAME=service_name)) )';

create table <yourtablenmae> as select * from [table_name_at_sourcedb]@dblink where rownum<1; --- Это создаст пустую таблицу, если вы хотите с данными удалить, где условие.

Отказ от ответственности: Не запускались, поэтому могут быть некоторые ошибки.

...