Полезные команды Oracle

Список команд которыми приходится пользоваться:

подключение к SQL Plus:
можно просто ввести команду и далее в ней авторизоваться: sqlplus
или можно сразу все ввести при запуске: sqlplus sys/123456@testdb as sysdba

Добавить пользователя:
create user user01 identified by user_password
grant create session to user01
grant select any table to user01

Проверка привелегий пользователя:
SELECT * FROM USER_SYS_PRIVS;
SELECT * FROM USER_TAB_PRIVS;
SELECT * FROM USER_ROLE_PRIVS;

Статус БД:
select status from v$instance;
Рабочий статус – OPEN

Проверить статус ARCHIVELOG:
SQL> archive log list;
SQL> select log_mode from v$database;

Изменить статур ARCHIVELOG:
SQL>SHUTDOWN IMMEDIATE;
SQL>STARTUP MOUNT;
SQL>ALTER DATABASE ARCHIVELOG; или NOARCHIVELOG
SQL>ALTER DATABASE OPEN;

Список файлов БД:
SQL>select file#, name, status from v$datafile;

Резервное копирование (полное):
При резервном копировании и восстановлении может придется отключать БД и потов включать:
резервное копирование:

RMAN> run {
shutdown immediate;
startup mount;
backup database;
alter database open;
}
восстановление:
RMAN> RUN {
shutdown immediate;
startup mount;
restore database;
recover database;
alter database open;
}

Инкрементальное резервное копирование:

Для инкрементального копирования (сперва запускаем level 0, а следующие копии уже 1):
RMAN> run {
shutdown immediate;
startup mount;
backup incremental level 0 database;
alter database open;
}
Восстановление:
reset database to incarnation 3;

RMAN:
выбор БД: connect target;
список резервных копий: list backup;
определить место хранения резервных копий:
configure channel device type disk format ‘C:\oracle\backup\%U’;
восстановить копию из резервной копии по ТЕГу:
restore database from tag=’TagName’;
определить время хранения резервных копий, в днях:
configure retention policy to recovery window of 20 days;
удалить резервную копию по номеру:
DELETE BACKUPSET 23;
Удалить бекапы старше 10 дней: DELETE OBSOLETE RECOVERY WINDOW OF 10 DAYS;

Если недоступна лента, на которую выполнялось резервное копирование, то резервные копии из списка будет не удалить. Можно сделать так: allocate channel for maintenance device type sbt parms ‘SBT_LIBRARY=oracle.disksbt, ENV=(BACKUP_DIR=/tmp)’; и после этого можно уже будет удалить.
И вернуть на диск: allocate channel for maintenance device type disk;