How to change DB from NO ARCHIVE LOG mode to ARCHIVE LOG mode


1)DB-ni mount vəziyyətinə gətiririk

[pcsh lang=”sql” tab_size=”4″ message=”” hl_lines=”” provider=”manual”]

SYS@valeh> startup mount

[/pcsh]

2)Arcice logların default yerləşəcəyi direktoriyanı yoxlayırıq və daha sonra sıfırlayırıq

[pcsh lang=”bash” tab_size=”4″ message=”” hl_lines=”” provider=”manual”]

SYS@valeh> show parameter db_recovery_file_dest;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string      /u01/oracle/product/10.2.0/db_1/flash_recovery_area
db_recovery_file_dest_size           big integer 2G

SYS@valeh> alter system set db_recovery_file_dest=' ';

[/pcsh]

3)Archive log-ların yerləşəcəyi direktoriyanı təyin edirik və daha sonra bazanı open vəziyyətinə gətiririk

[pcsh lang=”bash” tab_size=”4″ message=”” hl_lines=”” provider=”manual”]

SYS@valeh> alter system set log_archive_dest_1 = 'LOCATION=/u01/' scope = spfile;

show parameter LOG_ARCHIVE_DEST_1;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------
log_archive_dest_1                   string      LOCATION=/u01/

[/pcsh]

4) Bazanı Archice log vəziyyətinə gətiririk.

[pcsh lang=”sql” tab_size=”4″ message=”” hl_lines=”” provider=”manual”]

SYS@valeh> alter database archivelog;

SYS@valeh> alter database open;

[/pcsh]

5) Arxiv loglarin yaranıb yaranmadıqından emin olmaq
uchun bir neçə dəfə switch komandasını icra
edirik ki archive loglar yaransın

[pcsh lang=”sql” tab_size=”4″ message=”” hl_lines=”” provider=”manual”]

SYS@valeh> alter system switch logfile;

[/pcsh]

6)Aşağıdakı komandanı işlədirik  log fayllarının yarandığını görürük

[pcsh lang=”bash” tab_size=”4″ message=”” hl_lines=”” provider=”manual”]

[oracle@localhost ~]$ ls cd /u01/

1_34_751844965.dbf
1_35_751844965.dbf
1_36_751844965.dbf

[/pcsh]1)DB-ni mount vəziyyətinə gətiririk

[pcsh lang=”sql” tab_size=”4″ message=”” hl_lines=”” provider=”manual”]

SYS@valeh> startup mount

[/pcsh]

2)Arcice logların default yerləşəcəyi direktoriyanı yoxlayırıq və daha sonra sıfırlayırıq

[pcsh lang=”sql” tab_size=”4″ message=”” hl_lines=”” provider=”manual”]

SYS@valeh> show parameter db_recovery_file_dest;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string      /u01/oracle/product/10.2.0/db_1/flash_recovery_area
db_recovery_file_dest_size           big integer 2G

SYS@valeh> alter system set db_recovery_file_dest=' ';

[/pcsh]

3)Archive log-ların yerləşəcəyi direktoriyanı təyin edirik və daha sonra bazanı open vəziyyətinə gətiririk

[pcsh lang=”bash” tab_size=”4″ message=”” hl_lines=”” provider=”manual”]

SYS@valeh> alter system set log_archive_dest_1 = 'LOCATION=/u01/' scope = spfile;

show parameter LOG_ARCHIVE_DEST_1;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------
log_archive_dest_1                   string      LOCATION=/u01/

[/pcsh]

4) Bazanı Archice log vəziyyətinə gətiririk.

[pcsh lang=”sql” tab_size=”4″ message=”” hl_lines=”” provider=”manual”]

SYS@valeh> alter database archivelog;

SYS@valeh> alter database open;

[/pcsh]

5) Arxiv loglarin yaranıb yaranmadıqından emin olmaq
uchun bir neçə dəfə switch komandasını icra
edirik ki archive loglar yaransın

[pcsh lang=”sql” tab_size=”4″ message=”” hl_lines=”” provider=”manual”]

SYS@valeh> alter system switch logfile;

[/pcsh]

6)Aşağıdakı komandanı işlədirik  log fayllarının yarandığını görürük

[pcsh lang=”bash” tab_size=”4″ message=”” hl_lines=”” provider=”manual”]

[oracle@localhost ~]$ ls cd /u01/

1_34_751844965.dbf
1_35_751844965.dbf
1_36_751844965.dbf

[/pcsh]

DB-nı NO ARCHIVE LOG vəziyyətindən ARCHIVE LOG vəziyyətinə gətirmək


1)DB-ni mount vəziyyətinə gətiririk
SYS@valeh> startup mount

2)Arcice logların default yerləşəcəyi direktoriyanı yoxlayırıq və daha sonra sıfırlayırıq
SYS@valeh> show parameter db_recovery_file_dest;

NAME                                 TYPE        VALUE
———————————— ———– ——————————
db_recovery_file_dest                string      /u01/oracle/product/10.2.0/db_1/flash_recovery_area
db_recovery_file_dest_size           big integer 2G

SYS@valeh> alter system set db_recovery_file_dest=’ ‘;

3)Archive log-ların yerləşəcəyi direktoriyanı təyin edirik və daha sonra bazanı open vəziyyətinə gətiririk
SYS@valeh> alter system set log_archive_dest_1 = ‘LOCATION=/u01/’ scope = spfile;

show parameter LOG_ARCHIVE_DEST_1;

NAME                                 TYPE        VALUE
———————————— ———– ————————
log_archive_dest_1                   string      LOCATION=/u01/

4) Bazanı Archice log vəziyyətinə gətiririk.
SYS@valeh> alter database archivelog;

SYS@valeh> alter database open;

5) Arxiv loglarin yaranıb yaranmadıqından emin olmaq
uchun bir neçə dəfə switch komandasını icra
edirik ki archive loglar yaransın

SYS@valeh> alter system switch logfile;

6)Aşağıdakı komandanı işlədirik  log fayllarının yarandığını görürük
[oracle@localhost ~]$ ls cd /u01/

1_34_751844965.dbf
1_35_751844965.dbf
1_36_751844965.dbf

Control faylını “backup to trace”-dən istifadə edərək yenidən yaratmaq


backup to trace  controlfile-nin yadılma scriptini avtomatik generasiya edir. Backup to trace komandasını icra etdikdən sonra  USER_
DUMP_DEST direktoriyasina generasiya olunmuş script düşür .

#SQL*Plus-a daxil oluruq və aşağıdakı əmr vasitəsilə control faylını backup to trace edirik

SYS@valeh> alter database backup controlfile to trace;

Database altered.

SYS@valeh> show parameters user_dump_dest; # bu komandani icra etməklə biz user_dump_dest-in ünvanını götürürük

NAME                        TYPE                VALUE
———————————— ———– ————————————————-
user_dump_dest           string                 /u01/oracle/product/10.2.0/db_1/admin/valeh/udump

#yoxlamaq üçün kontrol fayllari silirik

vi /u01/oracle/product/10.2.0/db_1/admin/valeh/udump/valeh_ora_4604.trc

# yuxarıdakı komandanı icra edib buradan bize lazim olan control faylın yaranma skriptini  kopyalayib aşağıdakı kimi shell script faylina cheviririk

#! /bin/sh
sqlplus / as sysdba <<EOF
CREATE CONTROLFILE REUSE DATABASE “VALEH” NORESETLOGS  NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE GROUP 1 ‘/u01/Redo1_1.log’  SIZE 50M,GROUP 2 ‘/u01/Redo2_1.log’  SIZE 50M,GROUP 4 ‘/u01/oracle/product/10.2.0/db_1/flash_recovery_area/VALEH/onlinelog/o1_mf_4_6y1lcc03_.log’  SIZE 100M
DATAFILE ‘/u01/oracle/product/10.2.0/db_1/oradata/valeh/system01.dbf’,’/u01/oracle/product/10.2.0/db_1/oradata/valeh/undotbs01.dbf’,’/u01/oracle/product/10.2.0/db_1/oradata/valeh/sysaux01.dbf’,’/u01/oracle/product/10.2.0/db_1/oradata/valeh/users01.dbf’
CHARACTER SET AL32UTF8;
<<EOF

#DB-ni NOMOUNT vəziyyətinə gətiririk
SYS@valeh>STARTUP NOMOUNT
# yaratdığımız scripti işə salırıq
[oracle@localhost Desktop]$ ./controlfile_script

SYS@valeh>   2    3    4    5    6    7    8    9
Control file created.

SYS@valeh> alter database open;
Database altered.

DB-ni işə salırıq və gördüyümüz kimi control faylı müvəffəqiyyətlə yaradıldı və DB işə salındı