Oracle настройка listener.ora, tnsnames.ora, sqlnet.ora
Конфигурационные файлы расположены в директории ORACLE_НОМЕ/network/admin
tnsnames.ora - файл используется для определения параметров подключения к базе данных, таких как HOST, PORT, SID. Можно задавать несколько записей и работать с несколькими базами данных. При переносе базы данных ну другой сервер достаточно будет поменять имя сервера (HOST).
Пример файла tnsnames.ora
ORA.WORLD=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(COMMUNITY = ORACLE.WORLD)
(PROTOCOL = TCP)
(HOST = ora-hostname)
(PORT = 1527)
)
)
(CONNECT_DATA =
(SID = ORA)
(GLOBAL_NAME = ORA.WORLD)
)
)
listener.ora - Определяет какие экземпляры будут "слушаться" на предмет входящих подключении к базе.
Пример файла listener.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = ora-hostname)(PORT = 1521))
)
)
ADR_BASE_LISTENER = /usr/oracle/app
sqlnet.ora - текстовый файл параметром базы данных. Описание параметров для Oracle 11, Oracle 12
Пример файла sqlnet.ora
NAMES.DEFAULT_DOMAIN = WORLD
TRACE_LEVEL_CLIENT = OFF
SQLNET.EXPIRE_TIME = 30
Использование Oracle Net Manager
Запуск (утилита расположена в директории ORACLE_HOME/bin)
$ netmgr
Ветка Local (Profile, Service Naming, Listeners) раскрывает настройки tnsnames.ora, listener.ora, sqlnet.ora.
В меню Profile есть настройки уровня трассировки (Tracing) и месторасположения репозитория ADR, параметры подключения и журналирования. Можно использовать различные методы именования, например: LDAP, NIS, HOSTNAME, TNSNAMES.
Для создания Net Service Name перейдем на пункт Service Naming и щелкнем по кнопке +.
Далее укажем имя, протокол, имя хоста, номер порта и тип соединения.
Настроить listener базы, можно в пункте Listeners, указав имя, добавив адрес (Add Address: Protocol, Host, Port) и использовав другие настройки. Есть возможность добавить несколько listener для прослушивания нескольких баз данных.
Oracle 11g, 12c восстановление с использованием Fast Recovery Area
После настройки FRA можно использовать ее для резервного копирования и восстановления.
Создав полную резервную копию БД с помощью RMAN, отобразим её:
RMAN> list backup of database;
Далее сделаем резевную копию Fast Recovery Area указав директорию
RMAN> backup recovery area to destination '/share/fra_backups/';
Если мы повторно отобразим список, то будет видно два набора резевных копий
RMAN> list backup of database;
List of Backup Sets
===================
BS Key Type LV Size
------- ---- -- ----------
24 Full 966.04M
List of Datafiles in backup set 24
File LV Type Ckp SCN Ckp Time Name
---- -- ---- ---------- --------- ----
1 Full 880130 21-OCT-13 /usr/oracle/app/oradata/test1/system01.dbf
2 Full 880130 21-OCT-13 /usr/oracle/app/oradata/test1/sysaux01.dbf
3 Full 880130 21-OCT-13 /usr/oracle/app/oradata/test1/undotbs01.dbf
4 Full 880130 21-OCT-13 /usr/oracle/app/oradata/test1/users01.dbf
Backup Set Copy #1 of backup set 24
Device Type Elapsed Time Completion Time Compressed Tag
----------- ------------ --------------- ---------- ---
DISK 00:00:50 21-OCT-13 NO TAG20131021T091707
List of Backup Pieces for backup set 24 Copy #1
BP Key Pc# Status Piece Name
------- --- ----------- ----------
30 1 AVAILABLE /usr/oracle/app/flash_recovery_area/TEST1/backupset/2013_10_21/o1_mf_nnndf_TAG20131021T091707_96bbbn13_.bkp
Backup Set Copy #2 of backup set 24
Device Type Elapsed Time Completion Time Compressed Tag
----------- ------------ --------------- ---------- ---
DISK 00:00:50 21-OCT-13 NO TAG20131021T091707
List of Backup Pieces for backup set 24 Copy #2
BP Key Pc# Status Piece Name
------- --- ----------- ----------
36 1 AVAILABLE /share/fra_backups/TEST1/backupset/2013_10_21/o1_mf_nnndf_TAG20131021T091707_96bd3s7b_.bkp
Если база данных и директория /usr/oracle/app/flash_recovery_area/ будет утеряна, можно будет восстановиться из директории /share/fra_backups.
Восстановление:
Запускаем экземпляр
$ rman target /
RMAN> startup nomount;
startup failed: ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/usr/oracle/app/product/11.2.0/dbhome_1/dbs/inittest1.ora'
starting Oracle instance without parameter file for retrieval of spfile
Oracle instance started
Восстанавливаем spfile
RMAN> restore spfile from '/share/fra_backups/TEST1/backupset/2013_10_21/o1_mf_nnsnf_TAG20131021T091702_96bd3o0t_.bkp';
Starting restore at 21-OCT-13
using channel ORA_DISK_1
channel ORA_DISK_1: restoring spfile from AUTOBACKUP /share/fra_backups/TEST1/backupset/2013_10_21/o1_mf_nnsnf_TAG20131021T091702_96bd3o0t_.bkp
channel ORA_DISK_1: SPFILE restore from AUTOBACKUP complete
Finished restore at 21-OCT-13
Перезапускаем экземпляр
RMAN> shutdown immediate
RMAN> startup nomount
connected to target database (not started)
Oracle instance started
Восстанваливаем controlfile
RMAN> restore controlfile from '/share/fra_backups/TEST1/backupset/2013_10_21/o1_mf_ncnnf_TAG20131021T091702_96bd3mwv_.bkp';
Starting restore at 21-OCT-13
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=1 device type=DISK
channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
output file name=/usr/oracle/app/oradata/test1/control01.ctl
output file name=/usr/oracle/app/flash_recovery_area/test1/control02.ctl
Finished restore at 21-OCT-13
Монтируем экземпляр
RMAN> alter database mount;
database mounted
released channel: ORA_DISK_1
Восстанавливаем файлы данных
RMAN> catalog start with '/share/fra_backups/TEST1/backupset/2013_10_21/o1_mf_nnndf_TAG20131021T091707_96bd3s7b_.bkp';
RMAN> restore database;
Starting restore at 21-OCT-13
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00001 to /usr/oracle/app/oradata/test1/system01.dbf
channel ORA_DISK_1: restoring datafile 00002 to /usr/oracle/app/oradata/test1/sysaux01.dbf
channel ORA_DISK_1: restoring datafile 00003 to /usr/oracle/app/oradata/test1/undotbs01.dbf
channel ORA_DISK_1: restoring datafile 00004 to /usr/oracle/app/oradata/test1/users01.dbf
channel ORA_DISK_1: reading from backup piece /share/fra_backups/TEST1/backupset/2013_10_21/o1_mf_nnndf_TAG20131021T091707_96bd3s7b_.bkp
channel ORA_DISK_1: piece handle=/share/fra_backups/TEST1/backupset/2013_10_21/o1_mf_nnndf_TAG20131021T091707_96bd3s7b_.bkp tag=TAG20131021T091707
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:39
Finished restore at 21-OCT-13
Восстанавливаем архивлоги
RMAN> list backup;
List of Backup Sets
===================
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
21 Full 966.04M DISK 00:00:00 21-OCT-13
BP Key: 27 Status: AVAILABLE Compressed: NO Tag: TAG20131021T091707
Piece Name: /share/fra_backups/TEST1/backupset/2013_10_21/o1_mf_nnndf_TAG20131021T091707_96bd3s7b_.bkp
List of Datafiles in backup set 21
File LV Type Ckp SCN Ckp Time Name
---- -- ---- ---------- --------- ----
1 Full 880130 21-OCT-13 /usr/oracle/app/oradata/test1/system01.dbf
2 Full 880130 21-OCT-13 /usr/oracle/app/oradata/test1/sysaux01.dbf
3 Full 880130 21-OCT-13 /usr/oracle/app/oradata/test1/undotbs01.dbf
4 Full 880130 21-OCT-13 /usr/oracle/app/oradata/test1/users01.dbf
RMAN> recover database until scn 880130;
Starting recover at 21-OCT-13
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=19 device type=DISK
starting media recovery
archived log file name=/usr/oracle/app/oraarch/1_11_825688950.dbf thread=1 sequence=11
archived log file name=/usr/oracle/app/oraarch/1_12_825688950.dbf thread=1 sequence=12
media recovery complete, elapsed time: 00:00:00
Finished recover at 21-OCT-13
Открываем базу данных
RMAN> alter database open resetlogs;
database opened
Просмотр использования дискового пространства для Recovery Area в процентах
SQL> select * from v$flash_recovery_area_usage;
Изменить размер FRA можно с помощью команды
SQL> alter system set db_recovery_file_dest_size = 10G;
Очистка дискового пространства FRA от устаревших резеврных копий
RMAN> report obsolete;
RMAN> delete obsolete;