0% found this document useful (0 votes)
111 views26 pages

Backup and Recovery

The document discusses cold backup and recovery in Oracle 10g. It provides a diagram showing the process of cold backup, restore, and recovery. It then explains some key aspects of cold backup including shutting down the database, using the operating system to backup files rather than Oracle, backing up control files, datafiles and redo log files, and how archive log mode is required for complete recovery.

Uploaded by

Zwahera Beth
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
111 views26 pages

Backup and Recovery

The document discusses cold backup and recovery in Oracle 10g. It provides a diagram showing the process of cold backup, restore, and recovery. It then explains some key aspects of cold backup including shutting down the database, using the operating system to backup files rather than Oracle, backing up control files, datafiles and redo log files, and how archive log mode is required for complete recovery.

Uploaded by

Zwahera Beth
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 26

Backup

And
Recovery

Oracle 10g

Obay Salah Margani (Al-basha)


[email protected]
‫ﺍﻟﻤﻘﺩﻤﺔ‬

‫ﻤﻤﺎ ﻻ ﺸﻙ ﻓﻴﻪ ﺍﻥ ﻋﻤﻠﻴﺔ ﺍﻟﻤﺤﺎﻓﻅﺔ ﻋﻠﻲ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻤﻥ ﺃﻫﻡ ﻤﺴﺅﻟﻴﺎﺕ ﻤﺩﻴﺭ ﻗﺎﻋﺩﺓ‬
‫ﺍﻟﺒﻴﺎﻨﺎﺕ )‪ ، (DBA‬ﻟﺫﺍ ﻭﺠﺏ ﻋﻠﻲ ﻤﺩﻴﺭ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻻﻫﺘﻤﺎﻡ ﺒﻬﺫﺍ ﺍﻟﺠﺎﻨﺏ ﺃﻴﻤﺎ‬
‫ﺇﻫﺘﻤﺎﻡ ‪ ،‬ﻭﻟﻘﺩ ﺭﺃﻴﺕ ﺃﻥ ﺍﻓﻴﺩ ﻨﻔﺴﻲ ﻭﺃﺤﺒﺎﺌﻲ ﻓﻲ ﻫﺫﺍ ﺍﻟﻤﻨﺘﺩﻱ ﺍﻟﺭﺍﺌﻊ ﻟﻴﺱ ﺒﺒﺤﺙ ﻓﻲ ﻫﺫﺍ‬
‫ﺍﻟﻤﺠﺎل ﺍﻟﻭﺍﺴﻊ ﻭﺇﻨﻤﺎ ﻋﺭﺽ ﺒﻌﺽ ﺍﻟﺴﻨﺎﺭﻴﻭﻫﺎﺕ ﺍﻟﺘﻲ ﺃﺭﻱ ﺃﻨﻬﺎ ﻭﺍﺴﻌﺕ ﺍﻻﻨﺘﺸﺎﺭ‬
‫ﻤﺴﺘﺨﺩﻤﹰﺎ ﺍل‪ Physical backup‬ﺒﻨﻭﻋﻴﻪ ﺍل)‪. (cold & hot‬‬
Logical Export

When db down

Cold

Backup Physical

When db up

Hot

RMAN
Cold
Backup
Tape Disk NFS present controlfile

Redo log file

Simple restoring

Possible if
Destination

No archive
log mode
Complete
recovery
Cold
backup Restoring
+ recovery
Type

Archive
log mode Incomplete
recovery

Shut down
Online
Simple
restoring Offline

until cancel
Offline
O/S level until time

until SCN

Controlfile
Backup
Redologfiles

datafiles
‫‪Cold Backup‬‬
‫ﺴﺄﻗﻭﻡ ﻫﻨﺎ ﺒﺸﺭﺡ ﺒﺴﻴﻁ ﻟﻠﻤﺨﻁﻁ ﺍﻟﺴﺎﺒﻕ ﺍﻟﺫﻱ ﻴﻤﺜل ﻋﻤﻠﻴﺔ ﺍل ‪cold‬‬
‫‪ backup‬ﻭﺍل‪ restore‬ﻭﺍل‪: recovery‬‬

‫‪ : Shut down‬ﺒﻤﺎ ﺃﻨﻨﺎ ﻨﺘﻜﻠﻡ ﻋﻥ ﺍل‪ cold backup‬ﻓﻌﻤﻠﻴﺔ ﺍﻏﻼﻕ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻤﺭ‬
‫ﻀﺭﻭﺭﻱ ﻭﺃﺴﺎﺴﻲ ﻗﺒل ﺒﺩﺀ ﻋﻤﻠﻴﺔ ﺍل‪ . backup‬ﺤﺘﻲ ﻨﻀﻤﻥ ‪:‬‬
‫) ‪(SCN data file headers matches the SCN in the control files‬‬

‫‪ : destination‬ﻭﻫﻭ ﺍﻟﻤﻜﺎﻥ ﺍﻟﺫﻱ ﺴﻭﻑ ﻨﻀﻊ ﻓﻴﻪ ﺍل‪. (disk,tape.nfs) ، backup‬‬

‫‪ : operating system level‬ﻋﻤﻠﻴﺔ ﺍل‪ cold backup‬ﺘﺘﻡ ﻋﻠﻲ ﻤﺴﺘﻭﻱ ﻨﻅﺎﻡ‬


‫ﺍﻟﺘﺸﻐﻴل ﻭﻟﻴﺱ ﻋﻠﻲ ﻤﺴﺘﻭﻱ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ‪ ،‬ﻓﻨﻘﻭﻡ ﺒﻌﻤل ﻨﺴﺦ ﻟﻠﻤﻠﻔﺎﺕ ﺍﻟﻤﺭﺍﺩ ﻋﻤل‬
‫ﻨﺴﺦ ﺍﺤﺘﻴﺎﻁﻲ ﻟﻬﺎ ﻋﻥ ﻁﺭﻴﻕ ﻨﻅﺎﻡ ﺍﻟﺘﺸﻐﻴل ﻭﻤﻥ ﺜﻡ ﻟﺼﻘﻬﺎ ﻓﻲ ﺍﻟﻤﻜﺎﻥ ﺍﻟﻤﻨﺎﺴﺏ ﺩﻭﻥ‬
‫ﺍﻱ ﺃﺠﺭﺍﺀ ﻋﻠﻲ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻏﻴﺭ ﺇﻏﻼﻗﻬﺎ ‪.‬‬

‫‪ : backup‬ﻭﻨﻌﻨﻲ ﻫﻨﺎ ﺃﻨﻭﺍﻉ ﺍﻟﻤﻠﻔﺎﺕ ﺍﻟﺘﻲ ﻴﺘﻡ ﻋﻤل ﺍل‪ cold backup‬ﻟﻬﺎ ﻭﻫﻲ ‪) :‬‬
‫‪. (controlfile,datafiles,redolog files‬‬

‫‪ : No archive log mode‬ﻴﻤﻜﻥ ﻋﻤل ﺍل‪ cold backup‬ﺤﺘﻲ ﻟﻭ ﻜﺎﻨﺕ ﻗﺎﻋﺩﺓ‬


‫ﺍﻟﺒﻴﺎﻨﺎﺕ ﻓﻲ ﺍﻟﻭﻀﻊ ‪ No archive log mode‬ﻭﺫﻟﻙ ﻷﻨﻨﺎ ﻨﻀﻤﻥ ﺃﻥ ﻋﻤﻠﻴﺔ ﺍﻟﻨﺴﺦ‬
‫ﺍﻹﺤﺘﻴﺎﻁﻲ ﺘﺘﻡ ﻭﺍل ‪:‬‬
‫) ‪(SCN data file headers matches the SCN in the control files‬‬
‫ﻭﺒﺫﻟﻙ ﻻ ﻨﺤﺘﺎﺝ ﺍﻟﻲ ﺍﻷﺭﺸﻴﻑ ‪.‬‬
‫‪ : Archive log mode‬ﺍﻴﻀﹰﺎ ﻴﻤﻜﻥ ﻋﻤل ﺍل‪ cold backup‬ﻓﻲ ﺍﻟﻭﻀﻊ ‪Archive‬‬
‫‪ log mode‬ﻭﻓﻲ ﻫﺫﺍ ﺍﻟﻭﻀﻊ ﻴﺘﻡ ﻋﻤل ﺍﺭﺸﻴﻑ ﻟﻤﻠﻔﺎﺕ ﺍل‪ redolog files‬ﻭﺍﻹﺤﺘﻔﺎﻅ‬
‫ﺒﻬﺎ ﻻﺴﺘﺨﺩﺍﻤﻬﺎ ﻓﻴﻤﺎ ﺒﻌﺩ ﻟﻌﻤل ﺍل‪. recovery‬‬

‫‪ : Simple restoring‬ﻫﻨﺎ ﻓﻘﻁ ﻨﻘﻭﻡ ﺒﻌﻤل ﻨﺴﺦ ﻤﻠﻔﺎﺕ ﺍل‪ backup‬ﻭﺍﺭﺠﺎﻋﻬﺎ ﺍﻟﻲ‬
‫ﻤﻭﻀﻌﻬﺎ ﺍﻻﺼﻠﻲ ﻓﻲ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺩﻭﻥ ﺘﻁﺒﻴﻕ ﻤﻠﻔﺎﺕ ﺍل‪archive log files‬‬
‫ﻭﻤﻠﻔﺎﺕ ﺍل‪ redo log files‬ﺍﻟﺘﻲ ﻟﻡ ﻴﺘﻡ ﺍﺭﺸﻔﺘﻬﺎ ‪.‬‬

‫ﻻ ﺒﻌﻤل ﻨﺴﺦ ﻤﻠﻔﺎﺕ ﺍل‪ backup‬ﻭﺍﺭﺠﺎﻋﻬﺎ‬


‫‪ : Restring + recovery‬ﻫﻨﺎ ﻨﻘﻭﻡ ﺍﻭ ﹰ‬
‫ﺍﻟﻲ ﻤﻭﻀﻌﻬﺎ ﺍﻻﺼﻠﻲ ﻓﻲ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻭﻤﻥ ﺜﻡ ﺘﻁﺒﻴﻕ ﻤﻠﻔﺎﺕ ‪archive log files‬‬
‫ﻭﺍل‪ redo log file‬ﺍﻟﺫﻱ ﻟﻡ ﻴﺘﻡ ﺍﺭﺸﻔﺘﻪ ‪ ،‬ﻟﺫﺍ ﻋﻤﻠﻴﺔ ﺍل‪ recovery‬ﺸﺭﻁﻬﺎ ﺍﻷﺴﺎﺴﻲ‬
‫ﺃﻥ ﺘﻜﻭﻥ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻓﻲ ﺍﻟﻭﻀﻊ ‪.Archive log mode‬‬

‫‪ : Complete recovery‬ﻨﻌﻨﻲ ﻫﻨﺎ ﺃﻨﻨﺎ ﻨﺴﺘﻁﻴﻊ ﻋﻤل ﺍل‪ recovery‬ﻟﻘﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ‬


‫ﺩﻭﻥ ﺃﻥ ﻨﻔﻘﺩ ﺍﻱ ﺒﻴﺎﻨﺎﺕ ‪ ،‬ﺍﻱ ﺃﻨﻨﺎ ﻨﺴﺘﻁﻴﻊ ﺇﺭﺠﺎﻉ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻟﻠﺤﺎل ﺍﻟﺫﻱ ﻜﺎﻨﺕ ﻋﻠﻴﻪ‬
‫ﻗﺒل ﺤﺩﻭﺙ ﺍﻟﻔﺸل ‪.‬‬

‫‪ : Possible if‬ﺍﻱ ﺃﻨﻨﺎ ﻨﺴﺘﻁﻴﻊ ﻋﻤل ﺍل‪ complete recovery‬ﺇﺫﺍ ﻟﻡ ﻨﻔﻘﺩ ﺍل‬
‫‪ control file‬ﺍﻟﺤﻠﻲ ﻭﻜﺫﻟﻙ ﺍل‪ redo log file‬ﺍﻟﺫﻱ ﻟﻡ ﻴﺘﻡ ﺍﺭﺸﻔﺘﻪ ﻭﻜﺫﻟﻙ ﺍل‬
‫‪ archive log files‬ﺍﻟﺫﻱ ﻨﺤﺘﺎﺠﻪ ﻓﻲ ﻋﻤﻠﻴﺔ ﺍل‪.recovery‬‬

‫‪ : Type‬ﻭﻫﻨﺎ ﻨﻘﺼﺩ ﺃﻨﻨﺎ ﻨﺘﺴﺘﻁﻴﻊ ﻋﻤل ﺍل‪ complete recovery‬ﺴﻭﺍﺀ ﻜﺎﻨﺕ ﻗﺎﻋﺩﺓ‬
‫ﺍﻟﺒﻴﺎﻨﺎﺕ ﻤﻐﻠﻘﺔ ﺃﻭ ﻤﻔﺘﻭﺤﺔ ‪ ،‬ﻭﺫﻟﻙ ﻻﻨﻨﺎ ﻟﻡ ﻨﻔﻘﺩ ﺍل‪ controlfile‬ﺍﻟﺤﺎﻟﻲ ﻭﺍل‪.redolog‬‬
‫‪ : Incomplete recovery‬ﻫﻨﺎ ﻻ ﻨﺴﺘﻁﻴﻊ ﺇﺭﺠﺎﻉ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻟﻠﺤﺎل ﺍﻟﺫﻱ ﻜﺎﻨﺕ‬
‫ﻋﻠﻴﻪ ﻗﺒل ﺍﻟﻔﺸل ؛ ﺃﻱ ﺃﻨﻨﺎ ﻨﻔﻘﺩ ﺠﺯﺀ ﻤﻥ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻭﺫﻟﻙ ﻻﻨﻨﺎ ﻓﻘﺩﻨﺎ ﺍل‪controlfile‬‬
‫ﺍﻟﺤﺎﻟﻲ ﺃﻭ ﺍل‪ redolog file‬ﺍﻟﺫﻱ ﻟﻡ ﻨﺄﺭﺸﻔﻪ ﺍﻭ ﺍﺤﺩ ﻤﻠﻔﺎﺕ ﺍل‪archive log files‬‬
‫ﺍﻟﺫﻱ ﻨﺤﺘﺎﺠﻪ ﻓﻲ ﻋﻤﻠﻴﺔ ﺍل‪. recovery‬‬

‫‪ : Offline‬ﺍﻱ ﻻ ﻨﺴﺘﻁﻴﻊ ﻋﻤل ﺍل‪ incomplete recovery‬ﺇﻻ ﺇﺫﺍ ﻜﺎﻨﺕ ﻗﺎﻋﺩ‬


‫ﺍﻟﺒﻴﺎﻨﺎﺕ ﻤﻐﻠﻘﺔ ﻭﺫﻟﻙ ﻷﻨﻨﺎ ﻓﻘﺩﻨﺎ ﺍل‪ controlfile‬ﺍﻟﺤﺎﻟﻲ ﺃﻭ ﺍل‪. redolog file‬‬

‫ﻫﻨﺎ ﻴﺠﺏ ﺍﻹﺸﺎﺭﺓ ﺇﻟﻲ ﺍﻨﻪ ﻓﻲ ﺤﺎﻟﺔ ﺍل‪ incomplete recovery‬ﻴﺠﺏ ﻋﻠﻴﻨﺎ ﺃﻥ ﻨﻔﺘﺢ‬
‫ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻓﻲ ﺍﻟﻭﻀﻊ ‪. resetlogs‬‬
‫ﻓﻔﻲ ﺍﻟﻭﻀﻊ ‪: resetlogs‬‬

‫‪(whenever we open database with ‘resetlogs’ option the log‬‬


‫‪sequence number set to (zero zero one) 001.‬‬

‫ﻟﺫﻟﻙ ﺍﻱ ‪ backup‬ﺘﻡ ﻭﻀﻌﻪ ﻗﺒل ﻓﺘﺢ ﻗﺎﻋﺩ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻓﻲ ﺍﻟﻭﻀﻊ ‪ resetlogs‬ﻟﻡ‬


‫ﻴﻌﺩ ﺍﻻﻥ ﺼﺎﻟﺤﹰﺎ ﻟﻌﻤل ﺍل‪ recovery‬ﻭﺫﻟﻙ ﻷﻥ ‪ log sequence number‬ﺘﻐﻴﻴﺭ‬
‫ﺍﻷﻥ ﺍﻟﻲ )‪. (٠٠١‬‬

‫ﻟﺫﺍ ﻴﻨﺼﺢ ﺒﻌﻤل ‪ backup‬ﺠﺩﻴﺩ ﺒﻌﺩ ﻓﺘﺢ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻓﻲ ﺍﻟﻭﻀﻊ ‪resetlogs‬‬
‫‪.‬‬
‫‪Hot Backup‬‬

‫ﺇﺫﺍ ﺃﺭﺩﻨﺎ ﺃﻥ ﺭﺴﻡ ﻤﺨﻁﻁ ﻟﻌﻤﻠﻴﺔ ﺍل‪ Hot Backup‬ﻓﺈﻥ ﺍﻟﻤﺨﻁﻁ ﺍﻟﺴﺎﺒﻕ ﺍﻟﺨﺎﺹ‬
‫ﻻ ﻤﻥ ‪ offline‬ﻭﺫﻟﻙ ﻷﻨﻨﺎ‬
‫ﺒﺎل‪ Cold Backup‬ﺴﻭﻑ ﻴﺘﻐﻴﺭ ﺒﺤﻴﺙ ﻨﻀﻊ ‪ online‬ﺒﺩ ﹰ‬
‫ﻨﻘﻭﻡ ﺒﻌﻤل ﺍل‪ Backup‬ﺩﻭﻥ ﺇﻏﻼﻕ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ‪.‬‬

‫ﻜﺫﻟﻙ ﺍل‪ Hot Backup‬ﻴﺤﺘﺎﺝ ﻷﻥ ﺘﻜﻭﻥ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻓﻲ ﺍﻟﻭﻀﻊ ‪Archive‬‬


‫‪ log mode‬ﺤﺘﻲ ﻨﺴﺘﻁﻴﻊ ﻋﻤل ‪ recovery‬ﻋﻨﺩ ﺇﺴﺘﺨﺩﺍﻡ ﺍل‪ ، Hot Backup‬ﻭﺫﻟﻙ‬
‫ﻷﻨﻪ ﻟﻴﺱ ﻫﻨﺎﻙ ﻀﻤﺎﻥ ﺒﺄﻥ ﺍل‪:‬‬
‫)‪(SCN data file headers matches the SCN in the control files‬‬
‫ﻋﻨﺩ ﻋﻤل ﺍل‪. Hot Backup‬‬

‫ﺃﻴﻀﹰﺎ ﺍل‪ Hot Backup‬ﻻ ﻴﻜﻭﻥ ﻓﻘﻁ ﻋﻠﻲ ﻤﺴﺘﻭﻱ ﻨﻅﺎﻡ ﺍﻟﺘﺸﻐﻴل ﻭﺇﻨﻤﺎ ﺃﻴﻀﹰﺎ‬
‫ﻋﻠﻲ ﻤﺴﺘﻭﻱ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ‪.‬‬

‫ﺃﻤﺎ ﺒﺎﻟﻨﺴﺒﺔ ﻟل‪ recovery‬ﻓﺈﻥ ﺍﻟﻭﻀﻊ ﻻ ﻴﺘﻐﻴﺭ ﺴﻭﺍﺀ ﻜﺎﻥ ﺍﻟﻨﺴﺦ ﺍﻹﺤﺘﻴﺎﻁﻲ‬
‫ﺒﺎﺭﺩﹰﺍ ﺍﻡ ﺴﺎﺨﻨﹰﺎ ‪.‬‬
Scenario (1)

[Loss of controlfiles, redo log files, datafiles]

Backup = clod backup directory = /disk3/oradata/orcl/cold


User = user1 log_mode = archive log mode
Operating system = Linux
Database directory = /disk3/oradata/orcl

sys> startup
sys> conn user1/user1
user1> insert into emp select * from emp;
user1> /
[up to some thousands records]
User1> commit;
User1> Select count(*) from emp;
[2000 records]
User1> !
dba12 ~]$ cd /disk3/oradata/orcl
dba12 orcl]$ rm –f *
dba12 orcl]$ exit
user1> conn /as sysdba
sys> select * from dba_users;
Error: (since c/r/d files missing)
sys> Shut abort
sys> !
dba12 ~]$ cd /disk3/oradata/orcl
dba12 orcl]$ cd cold
dba12 cold]$ cp –f * ..
dba12 cold]$ exit
sys> startup mount
sys> alter database recover automatic using backup controlfile
until cancel;
sys> recover cancel;
sys> alter database open resetlogs;
sys> conn user1/user1
user1> select count(*) from emp;
[2000 records]

Whenever you open database with ‘resetlogs’ option ,


the log sequence number set to (zero zero one) 001 .
• the backup which you took previously , now become
invalid .
• you must take new backup [cold]

user1> conn /as sysdba


sys> shut immediate
for backup you shoud go whit ‘shut immediate’ option
only.
The database should be down in case of cold backup .
Scenario (2)

[Loss of non_system datafile]

Backup = clod backup directory = /disk3/oradata/orcl/cold


User = user1 log_mode = archive log mode
Operating system = Linux
Database directory = /disk3/oradata/orcl
Loss datafile = users.dbf

sys> startup
sys> conn user1/user1
user1> insert into emp select * from emp;
user1> /
[up to some thousands records]
User1> commit;
User1> !
dba12 ~]$ cd /disk3/oradata/orcl
dba12 orcl]$ rm users.dbf
dba12 orcl]$ exit
user1> insert into emp select * from emp;
error: [since datafile users.dbf is missing]
sys> conn / as sysdba
sys> !
dba12 ~]$ cd /disk3/oradata/orcl
dba12 orcl]$ cd cold
dba12 cold]$ cp users.dbf ..
dba12 cold]$ exit
sys> select * from v$ recover_file;
[note the file#]
Sys> alter database datafile 6 offline;
Sys> alter database recover automatic datafile 6;
Sys> alter database datafile 6 online;
Scenario (3)

[Loss of system datafile]

Backup = clod backup directory = /disk3/oradata/orcl/cold


User = user1 log_mode = archive log mode
Operating system = Linux
Database directory = /disk3/oradata/orcl
Loss datafile = system.dbf

Sys> startup
Sys> conn user1/user1
User1> insert into emp select * from emp;
User1> / [up to some thousands records]
User1> commit;
User1> !
dba12 ~]$ cd /disk3/oradata/orcl
dba12 orcl]$ rm system.dbf
dba12 orcl]$ exit
user1> conn /as sysdba
sys> select * from dba_users;
error:[since system datafile missing]
sys> shut abort
sys> !
dba12 ~]$ cd /disk3/oradata/orcl/cold
dba12 cold$ cp system.dbf ..
dba12 cold]$ exit
sys> startup mount;
sys> select * from v$recover_file; [note file#]
sys> alter database recover automatic datafile 1 ;
sys> alter database open;
Scenario (4)

[Point in time recovery]

Backup = clod backup directory = /disk3/oradata/orcl/cold


Last backup directory = /disk3/oradata/orcl/warm
User = user1 log_mode = archive log mode
Operating system = Linux
Database directory = /disk3/oradata/orcl

Sys> startup
Sys> conn user1/user1
User1> select count(*) from emp; [14 records]
User1> select count(*) from dept; [4 records]
User1> Insert into emp select * from emp;
User1> /
[up to some 448 records]
User1> commit;
User1> Set time on
18:50:35 user1> select count(*) from emp ; [448 records]
18:51:29 user1> drop table emp purge;
18:52:12 user1> insert into dept select * from dept;
18:53:08 user1> /
[up to some 256 records]
18:55:00 user1> commit;
18:56:09 user1> conn /as sysdba
18:56:59 sys> shut immediate
18:57:12 sys> !
dba12 ~]$ cd /disk3/oradata/orcl
dba12 orcl]$ mkdir warm
dba12 orcl]$ cp –f * warm
dba12 orcl]$ cd cold
dba12 cold]$ cp –f * .. [restoring backup]
dba12 cold]$ exit
19:00:00 sys> set time off
Sys> startup mount
Sys> alter database recover automatic using backup controlfile
until time ‘2007/04/17/18:50:35’;
Sys> alter database open resetlogs;
Sys> conn user1/user1
User1> select * from tab; [table ‘emp’ exists’]
User1> select count(*) from emp; [448 records]
User1> select count(*) from dept; [4 records]
User1> !
dba12 ~]$ cd /disk3/oradata/orcl
dba12 orcl]$exp file=emp.dmp tables=emp
username:user1/user1
dba12 orcl]$ exit
user1> conn /as sysdba
sys> shut immediate
sys> !
dba12 ~]$ cd /disk3/oradata/orcl/warm
dba12 warm]$ cp –f * ..
dba12 warm]$ exit
sys> startup
sys> conn user1/user1
user1> select * from tab; [table emp doesn’t exit]
user1> select count(*) from dept; [256]
user1> !
dba12 ~]$ cd /disk3/oradata/orcl
dba12 orcl]$ imp file=emp.dmp tables=emp
username:user1/user1
dba12 orcl]$ exit
user1> select * from tab; [table ‘emp’ exist]
user1> select count(*) from emp; [448 records]
user1> select count(*) from dept; [256 records]
Scenario (5)

[Loss of log files]

Backup = clod backup directory = /disk3/oradata/orcl/cold


User = user1 log_mode = archive log mode
Operating system = Linux
Database directory = /disk3/oradata/orcl

Sys> startup
Sys> conn user1/user1
User1> insert into emp select * from emp;
User1> /
[up to some thousands of records]
User1> commit;
User1> !
dba12 ~]$ cd /disk3/oradata/orcl
dba12 orcl]$ rm redolog1a.log redolog2a.log
dba12 orcl]$ exit
user1> insert into emp select * from emp;
user1> /
[up to some thousands of records]
Error:

(Check the alert log file)

User1> conn /as sysdba


Sys> shut abort
Sys> !
dba12 ~]$ cd /disk3/oradata/orcl
dba12 orcl]$ cd cold
dba12 cold]$ cp *.dbf *.ctl ..
dba12 cold]$ exit
sys> startup mount
sys> alter database recover automatic using backup controlfile
until cancel;
sys> recover cancel;
sys> alter database open resetlogs;
sys> select member from v$ logfile;
sys> !
dba12 ~]$ cd /disk3/oradata/orcl
dba12 orcl]$ ls
[physically can see redolog files]
Scenario (6)

[Loss of undo datafile]

Backup = clod backup directory = /disk3/oradata/orcl/cold


User = user1 log_mode = archive log mode
Operating system = Linux
Database directory = /disk3/oradata/orcl
Loss datafile = undotbs.dbf

Sys> startup
Sys> conn user1/user1
User1> insert into emp select * from emp;
User1> /
[up to some thousands of records]
User1> commit;
User1> !
dba12 ~]$ cd /disk3/oradata/orcl
dba12 orcl]$ rm undotbs.dbf
dba12 orcl]$ exit
user1> insert into emp select * rom tab;
user1> /
[up to some thousands of records]

Error:(since undotbs.dbf is missing)


User1> conn /as sysdba
Sys> shut abort
Sys> !
dba12 ~]$ cd /disk3/oradata/orcl/cold
dba12 cold]$ cp undotbs.dbf ..
dba12 cold]$ exit
sys> startup mount
sys> select * from v$recover_file; [note the file#]
sys> alter database recover automatic datafile 2;
sys> alter database open;
Scenario (7)

[Loss of controlfiles]

Backup = clod backup directory = /disk3/oradata/orcl/cold


User = user1 log_mode = archive log mode
Operating system = Linux
Database directory = /disk3/oradata/orcl

Sys> startup
Sys> conn user1/user1
User1> insert into emp select * from emp;
User1> /
[up to some thousands records]
User1> !
dba12 ~]$ cd /disk3/oradata/orcl
dba12 orcl]$ rm cont.ctl
dba12 orcl]$ exit
user1> conn /as sysdba
sys> alter tablespace user offline;
error: ORA 803
sys> shut abort
sys> !
dba12 ~]$ cd /disk3/oradata/orcl/cold
dba12 cold]$ cp cont.ctl ..
dba12 cold]$ exit
sys> startup mount
sys> recover database using backup controlfile until cancel;
sys> auto or /disk3/oradata/orcl/redolog1a.log;
[Must be current redolog file , else repeat above 2 steps with
other redolog groups member]

Sys> recover cancel;


sys> alter database open resetlogs;
Scenario (8)

[loss of unbackup datafile]

Backup = clod backup directory = /disk3/oradata/orcl/cold


User = user1 log mode = archive log mode
Operating system = Linux
Database directory = /disk3/oradata/orcl
Loss datafile = ts2.dbf

Sys> startup
Sys> conn user1/user1
User1> insert into emp select * from emp;
User1> /
User1> /
Error: not enough space
User1> commit;
User1> conn /as sysdba
Sys> alter tablespace ts1 add datafile ‘disk3/oradata/orcl/ts2.dbf’
size 5m;
Sys> conn user1/user1
User1> insert into select * from tab;
User1> /
[some more records]
User1> commit;
User1> !
dba12 ~]$ cd /disk3/oradata/orcl
dba12 orcl]$ rm ts2.dbf
dba12 orcl]$ exit
user1> insert into select * from emp;
Error:[since ts2.dbf is missing]
User1> conn /as sysdba
Sys> shut abort
Sys> startup mount
Sys> alter database create datafile ‘/disk3/oradata/orcl/ts2.dbf’;
Sys> alter database recover automatic datafile
‘/disk3/oradata/orcl/ts2.dbf’;
Sys> Alter database open;
Scenario (9)

[loss of datafile]

Backup = hot backup directory = /disk3/oradata/orcl/hot


User = user1 log_mode = archive log mode
Operating system = Linux
Database directory = /disk3/oradata/orcl
Loss datafile = hb.dbf

Sys> startup
Sys> create tablespace hb datafile ‘/disk3/oradata/orcl/hb.dbf’ size
20m;
Sys> create user user1 identified by user1 default tablespace hb;
Sys> grant connect,resource to user1;
Sys> conn user1/user1
User1> insert into emp select * from emp;
User1> commit;
User1> conn /as sysdba
Sys> alter tablespace hb begin backup;
Sys> !
dba12 ~]$ cd /disk/oradata/orcl
dba12 orcl]$ mkdir hot
dba12 orcl]$ cp hb.dbf hot/
dba12 ~]$exit
sys> alter tablespace hb end backup ;
sys> conn user1/user1
user1> insert into emp select * from emp;
user1> commit;
user1> !
dba12 ~]$ cd /disk3/oradata/orcl
dba12 orcl]$ rm hb.dbf
dba12 orcl]$ exit
user1> create table test (cno number(2));
ERROR:
User1> conn /as sysdba
Sys> shut abort
Sys> !
dba12 ~]$ cd /disk3/oradata/orcl/hot
dba12 hot]$ cp hb.dbf ..
dba12 hot]$ exit
sys> startup mount
sys> select * from v$backup;
sys> select * from v$recover_file; [note file#]
sys> alter database recover automatic datafile 9;
sys> alter database open;
Scenario (10)
[damage tempfile]

damage tempfile = temp_1.dbf

Sys> alter tablespace temp_ts add tempfile


‘/disk3/oradata/orcl/temp_2.dbf’ size 10m;
Sys> alter database tempfile ‘/disk3/oradata/orcl/temp_1.dbf’
offline;
Sys> alter database tempfile ‘/disk3/oradata/orcl/temp_1.dbf’ drop;
Scenario (11)
[damage temporary tablespace]

damage temporary tablespace = temp_ts1

Sys> create temporary tablespace temp_ts2 tempfile


‘/disk3/oradata/orcl/temp2_1.dbf’ size 10m;
Sys> alter database default temporary tablespace temp_ts2;
Sys> drop tablespace temp_ts1 including contents and datafiles;
Scenario (12)
[damage online logfile member]

Sys> alter database drop logfile member


‘/disk3/oradata/orcl/redo1a.log’;
Sys> !
dba12 ~]$ cd ‘/disk3/oradata/orcl
dba12 orcl]$ rm redo1a.log
dba12 orcl]$ exit
sys> alter database add logfile member
‘/disk3/oradata/orcl/redo1a.log’ to group 1;
sys> select * from v$ogfile;

‫ﺘﺤﻴﺔ ﺨﺎﺼﺔ ﻟﻜﻡ ﻤﻨﻲ‬


(‫ﺃُﺒﻲ ﺼﻼﺡ ﻤﻴﺭﻏﻨﻲ )ﺍﻟﺒﺎﺸﺎ‬
[email protected]

You might also like