...
| Предупреждение |
|---|
Ниже приведены примеры команд и скриптов, конечный синтаксис будет отличаться. Перед выполнением нужно внести соответствующие изменения описывающие параметры подключения и другие атрибуты базы данных и ее состава данных. |
Экспорт данных.
Исходная БД должна иметь кодировку CL8MSWIN1251
Получаем дамп БД (только данные).
Опции указанные в команде, четко указывают на то, что снимается не полный дамп, а только данные схемы supermag
...
expdp system/qqq@sbis58 directory=dir schemas=supermag content=DATA_ONLY dumpfile=supermag.dmp logfile=supermag.log
Получаем дамп БД (только метаданные).
...
(Вариант №1)
Можно использовать, если количество пользователей в БД - небольшое. В противном случае, получившееся значение не уместится в скрипте.
Установить кодовую страницу таким образом, чтобы русские имена пользователя выводились в читаемом виде.
...
где, строка INCLUDE=USER:... повторяет результат выше выполненного скрипта.
Пример файла - export.par
Произвести экспорт данных:
expdp system/qqq@sbis58 PARFILE=C:\export.par
----------------
Получаем дамп БД (только метаданные). (Вариант №2)
Создать файл: export2.par
Опции указанные в команде, четко указывают на то, что снимается не полный дамп, а только экспортировали дамп с метаданными пользователей, ролей и привилегий.
DIRECTORY=dir
DUMPFILE=users_and_roles_only.dmp
LOGFILE=export_users.log
FULL=Y
CONTENT=METADATA_ONLY
EXCLUDE=SCHEMA:"='SYS'"
EXCLUDE=SCHEMA:"='SYSTEM'"
EXCLUDE=SCHEMA:"='ORACLE_OCM'"
EXCLUDE=SCHEMA:"='DBSNMP'"
EXCLUDE=SCHEMA:"='OUTLN'"
EXCLUDE=SCHEMA:"='XDB'"
EXCLUDE=SCHEMA:"='APPQOSSYS'"
---------------------Произвести экспорт данных:
expdp system/qqq@sbis58 PARFILE=C:\export2.par
Подготовка БД для импорта.
Создание новой БД.
Обязательно, при создании выбрать (указать):
...
Размер файлов табличных пространств, и их количество указываются таким образом, чтобы данные которые мы будем загружать - уместились.
Инициализация БД.
Провести инициализацию БД с помощью программы "Модуль генерации БД".
Вариант инициализации - подчиненная база, без заполнения начальными данными. (3-й пункт меню).
Отключение триггеров и ограничений.
Можно использовать скрипты, которые выполнят данную операцию. Но, автору данной инструкции удобнее использовать программу TOAD. В которой для схемы supermag - отбираются (поочередно) все ограничения и триггеры - и производится их отключение.
Импорт данных.
create or replace directory dir as 'C:\BASE';
Импорт данных.
Опции указанные в команде, четко указывают на то, что ,будет загружен не полный дамп, а только данные таблиц.
impdp system/qqq@sbis58 directory=dir schemas=supermag content=DATA_ONLY dumpfile=supermag.dmp logfile=supermag_import.log table_exists_action=TRUNCATE
Импорт метаданных.
Опции указанные в команде, четко указывают на то, что ,будет загружен не полный дамп, а только метаданные.
impdp system/qqq@ORAUNI4 DIRECTORY=dir DUMPFILE=supermag_metadata.dmp LOGFILE=import.log FULL=Y CONTENT=METADATA_ONLY
Скрипты выдачи прав.
Выполнить скрипты выдачи прав.
Не уверен, что это необходимый список, возможно он избыточен.
Но, на практике - решение работоспособно. Хотя возможно предоставляет прав больше, чем требуется.
GRANT ADMINISTER DATABASE TRIGGER TO SUPERMAG;
GRANT ALTER ANY ROLE TO SUPERMAG;
GRANT ALTER USER TO SUPERMAG WITH ADMIN OPTION;
GRANT ANALYZE ANY TO SUPERMAG;
GRANT CREATE DATABASE LINK TO SUPERMAG;
GRANT CREATE LIBRARY TO SUPERMAG;
GRANT CREATE PUBLIC SYNONYM TO SUPERMAG;
GRANT CREATE ROLE TO SUPERMAG WITH ADMIN OPTION;
GRANT CREATE SNAPSHOT TO SUPERMAG;
GRANT CREATE TABLE TO SUPERMAG;
GRANT CREATE USER TO SUPERMAG WITH ADMIN OPTION;
GRANT DROP ANY ROLE TO SUPERMAG WITH ADMIN OPTION;
GRANT DROP PUBLIC SYNONYM TO SUPERMAG;
GRANT DROP USER TO SUPERMAG WITH ADMIN OPTION;
GRANT GRANT ANY ROLE TO SUPERMAG WITH ADMIN OPTION;
GRANT SELECT ON SYS.DBA_CONS_COLUMNS TO SUPERMAG WITH GRANT OPTION;
GRANT SELECT ON SYS.DBA_CONSTRAINTS TO SUPERMAG WITH GRANT OPTION;
GRANT SELECT ON SYS.DBA_JOBS TO SUPERMAG WITH GRANT OPTION;
GRANT SELECT ON SYS.DBA_ROLES TO SUPERMAG;
GRANT SELECT ON SYS.DBA_TAB_COLUMNS TO SUPERMAG WITH GRANT OPTION;
GRANT SELECT ON SYS.DBA_USERS TO SUPERMAG WITH GRANT OPTION;
GRANT EXECUTE ON SYS.DBMS_ALERT TO SUPERMAG;
GRANT EXECUTE ON SYS.DBMS_LOCK TO SUPERMAG;
GRANT EXECUTE ON SYS.DBMS_OUTPUT TO SUPERMAG;
GRANT EXECUTE ON SYS.DBMS_PIPE TO SUPERMAG;
GRANT SELECT ON SYS.V_$SESSION TO SUPERMAG;
GRANT SELECT ON SYS.V_$INSTANCE TO SUPERMAG;
WHENEVER SQLERROR EXIT 1 ROLLBACK;
WHENEVER OSERROR EXIT 2 ROLLBACK;
...
grant select on V_$SESSION to SUPERMAG with grant option;
grant select on V_$INSTANCE to SUPERMAG;
grant execute on DBMS_ALERT to SUPERMAG;
grant execute on DBMS_PIPE to SUPERMAG;
grant select on DBA_USERS to SUPERMAG with grant option;
grant select on DBA_ROLES to SUPERMAG;
grant select on dba_constraints to SUPERMAG with grant option;
grant select on dba_tab_columns to SUPERMAG with grant option;
grant select on dba_cons_columns to SUPERMAG with grant option;
grant create role to SUPERMAG;
grant alter any role to SUPERMAG;
grant create library to SUPERMAG;
grant create public synonym to SUPERMAG;
grant drop public synonym to SUPERMAG;
grant administer database trigger to SUPERMAG;
grant execute on DBMS_LOCK to SUPERMAG;
grant execute on DBMS_UTILITY to SUPERMAG with grant option;
grant select on dba_jobs to SUPERMAG with grant option;
grant create database link to SUPERMAG;
grant create snapshot to SUPERMAG;
grant create table to SUPERMAG;
grant ANALYZE ANY to SUPERMAG;
grant create any index to SUPERMAG;
grant drop any index to SUPERMAG;
grant global query rewrite to SUPERMAG;
grant alter system to SUPERMAG;
grant create user to SUPERMAG with admin option;
grant alter user to SUPERMAG with admin option;
grant drop user to SUPERMAG with admin option;
grant create role to SUPERMAG with admin option;
grant drop any role to SUPERMAG with admin option;
grant grant any role to SUPERMAG with admin option;
grant select on dba_users to supermag_user;
Перекомпиляция процедур и функций.
Желательно выполнить несколько раз. (3-5 раз).
@c:\oracle\ORA12\RDBMS\ADMIN\utlrp.sql;
Активация триггеров и ограничений.
Можно использовать скрипты, которые выполнят данную операцию. Но, автору данной инструкции удобнее использовать программу TOAD. В которой для схемы supermag - отбираются (поочередно) все ограничения и триггеры - и производится их активация (включение).
...
Н иже представлен PL/SQL-скрипт для включения всех отключённых ограничений в схеме supermag (Oracle 19) без проверки уже существующих данных (опция ENABLE NOVALIDATE).
Скрипт предполагает выполнение от имени владельца схемы supermag. Если вы подключаетесь под другим пользователем, замените user_constraints на all_constraints с фильтром по owner = 'SUPERMAG'.
...
| Информация |
|---|
Скрипт для отключения всех включённых ограничений в схеме
Что делает скрипт:
|
Импорт данных.
create or replace directory dir as 'C:\BASE';
Импорт данных.
Опции указанные в команде, четко указывают на то, что ,будет загружен не полный дамп, а только данные таблиц.
impdp system/qqq@sbis58 directory=dir schemas=supermag content=DATA_ONLY dumpfile=supermag.dmp logfile=supermag_import.log table_exists_action=TRUNCATE
Импорт метаданных.
Опции указанные в команде, четко указывают на то, что ,будет загружен не полный дамп, а только метаданные.
impdp system/qqq@ORAUNI4 DIRECTORY=dir DUMPFILE=supermag_metadata.dmp LOGFILE=import.log FULL=Y CONTENT=METADATA_ONLY
Скрипты выдачи прав.
Выполнить скрипты выдачи прав.
Не уверен, что это необходимый список, возможно он избыточен.
Но, на практике - решение работоспособно. Хотя возможно предоставляет прав больше, чем требуется.
GRANT ADMINISTER DATABASE TRIGGER TO SUPERMAG;
GRANT ALTER ANY ROLE TO SUPERMAG;
GRANT ALTER USER TO SUPERMAG WITH ADMIN OPTION;
GRANT ANALYZE ANY TO SUPERMAG;
GRANT CREATE DATABASE LINK TO SUPERMAG;
GRANT CREATE LIBRARY TO SUPERMAG;
GRANT CREATE PUBLIC SYNONYM TO SUPERMAG;
GRANT CREATE ROLE TO SUPERMAG WITH ADMIN OPTION;
GRANT CREATE SNAPSHOT TO SUPERMAG;
GRANT CREATE TABLE TO SUPERMAG;
GRANT CREATE USER TO SUPERMAG WITH ADMIN OPTION;
GRANT DROP ANY ROLE TO SUPERMAG WITH ADMIN OPTION;
GRANT DROP PUBLIC SYNONYM TO SUPERMAG;
GRANT DROP USER TO SUPERMAG WITH ADMIN OPTION;
GRANT GRANT ANY ROLE TO SUPERMAG WITH ADMIN OPTION;
GRANT SELECT ON SYS.DBA_CONS_COLUMNS TO SUPERMAG WITH GRANT OPTION;
GRANT SELECT ON SYS.DBA_CONSTRAINTS TO SUPERMAG WITH GRANT OPTION;
GRANT SELECT ON SYS.DBA_JOBS TO SUPERMAG WITH GRANT OPTION;
GRANT SELECT ON SYS.DBA_ROLES TO SUPERMAG;
GRANT SELECT ON SYS.DBA_TAB_COLUMNS TO SUPERMAG WITH GRANT OPTION;
GRANT SELECT ON SYS.DBA_USERS TO SUPERMAG WITH GRANT OPTION;
GRANT EXECUTE ON SYS.DBMS_ALERT TO SUPERMAG;
GRANT EXECUTE ON SYS.DBMS_LOCK TO SUPERMAG;
GRANT EXECUTE ON SYS.DBMS_OUTPUT TO SUPERMAG;
GRANT EXECUTE ON SYS.DBMS_PIPE TO SUPERMAG;
GRANT SELECT ON SYS.V_$SESSION TO SUPERMAG;
GRANT SELECT ON SYS.V_$INSTANCE TO SUPERMAG;
WHENEVER SQLERROR EXIT 1 ROLLBACK;
WHENEVER OSERROR EXIT 2 ROLLBACK;
grant SUPERMAG_USER to SUPERMAG;
grant select on V_$SESSION to SUPERMAG with grant option;
grant select on V_$INSTANCE to SUPERMAG;
grant execute on DBMS_ALERT to SUPERMAG;
grant execute on DBMS_PIPE to SUPERMAG;
grant select on DBA_USERS to SUPERMAG with grant option;
grant select on DBA_ROLES to SUPERMAG;
grant select on dba_constraints to SUPERMAG with grant option;
grant select on dba_tab_columns to SUPERMAG with grant option;
grant select on dba_cons_columns to SUPERMAG with grant option;
grant create role to SUPERMAG;
grant alter any role to SUPERMAG;
grant create library to SUPERMAG;
grant create public synonym to SUPERMAG;
grant drop public synonym to SUPERMAG;
grant administer database trigger to SUPERMAG;
grant execute on DBMS_LOCK to SUPERMAG;
grant execute on DBMS_UTILITY to SUPERMAG with grant option;
grant select on dba_jobs to SUPERMAG with grant option;
grant create database link to SUPERMAG;
grant create snapshot to SUPERMAG;
grant create table to SUPERMAG;
grant ANALYZE ANY to SUPERMAG;
grant create any index to SUPERMAG;
grant drop any index to SUPERMAG;
grant global query rewrite to SUPERMAG;
grant alter system to SUPERMAG;
grant create user to SUPERMAG with admin option;
grant alter user to SUPERMAG with admin option;
grant drop user to SUPERMAG with admin option;
grant create role to SUPERMAG with admin option;
grant drop any role to SUPERMAG with admin option;
grant grant any role to SUPERMAG with admin option;
grant select on dba_users to supermag_user;
Перекомпиляция процедур и функций.
Желательно выполнить несколько раз. (3-5 раз).
@c:\oracle\ORA12\RDBMS\ADMIN\utlrp.sql;
Активация триггеров и ограничений.
Можно использовать скрипты, которые выполнят данную операцию. Но, автору данной инструкции удобнее использовать программу TOAD. В которой для схемы supermag - отбираются (поочередно) все ограничения и триггеры - и производится их активация (включение).
| Информация |
|---|
Ниже представлен PL/SQL-скрипт для включения всех отключённых ограничений в схеме Скрипт предполагает выполнение от имени владельца схемы
SET SERVEROUTPUT ON; DECLARE v_sql VARCHAR2(4000); BEGIN FOR c IN (SELECT table_name, constraint_name, constraint_type FROM user_constraints WHERE status = 'DISABLED' ORDER BY CASE constraint_type WHEN 'P' THEN 1 -- первичные ключи WHEN 'U' THEN 2 -- уникальные WHEN 'R' THEN 3 -- внешние ключи WHEN 'C' THEN 4 -- проверочные ELSE 5 END) LOOP BEGIN v_sql := 'ALTER TABLE "' || c.table_name || '" ENABLE NOVALIDATE CONSTRAINT "' || c.constraint_name || '"'; EXECUTE IMMEDIATE v_sql; DBMS_OUTPUT.PUT_LINE('Включено ограничение: ' || c.constraint_name || ' на таблице ' || c.table_name); EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('Ошибка включения ' || c.constraint_name || ': ' || SQLERRM); END; END LOOP; END; / Что делает скрипт:
Важные замечания:
|
Проверка структуры БД.
Обязательно, после выполнения всех действий.
Даже, если БД кажется вполне работоспособной. Необходимо выполнить проверку текущей структуры базы данных по сравнению с эталоном.
В качестве эталона должна использоваться заведомо рабочая, проверенная база.
Лучше для этих целей создать новую тестовую БД, и заполнить ее генератором СМ+.
Проверка структуры с эталоном производится в программе "Административный модуль" - "База данных" - "Утилиты" - "Эталон"
Промышленная эксплуатация.
Начинаем этап опытно-промышленную эксплуатацию. Затем можно принять решение о запуске в штатном режиме.
...

