SlideShare a Scribd company logo
1 of 15
VERİTABANI YÖNETİMİ
DATABASE’I ARCHIVE MODA ALMA
7/24 çalışan database’ler için Archive moda olmak çok öenmlidir,çünkü bu sistemeler herhangi bir veri
kaybına tahammülü olmayan sistemlerdir.
Archive Moda olmayan bir sistem şu şekildedir.

Redologlar dairesel bir şekilde işlem görür.
Redologlar bir check pointten sonra yeniden kullanılabilir
Bu Sistemde Redolog filelar Archive dosyalarına yazılmaz böylece her bir yeni bilgi redologlar üzerine
yazılır,bu şekilde eski bilgiler ezilmiş üzerine yenileri gelmiş olur.
* Herhangi bir datafile üzerinde arıza oluştuğu zaman,İlgili datafile drop yada database restore olana
kadar database çalışmayacaktır.
* Backup almak için operating sistem komutları kullanılacaktır,aynı zamanda database’in kapalı olması
gerekmektedir.
* Her backup setine datafileları ve control fileları muhakak koymalıyız fakat online redologlara gerek
yoktur.
* Her seferinde online redologlar ezildiği için herhangi bir tehlike anında geriye dönüş olmayacaktır.
Restore Anında ise;
•

Restore etmek için full datafile ları ve control file ları kullanmak zorundayız.
•

Yada export uygulaması ve import uygulaması kullanılarak backup/recovery yapılabilir.Bu şekilde
işleme incomplate recovery olarak adlandırılmaktadır.

Archive Modda olan bir sistem şu şekildedir.

•

Bu şekilde her bir değişiklik Archive dosylarına yazılmaktadır.

•

Data kayıplarına karşı en yüksek düzeyde koruma sağlanmış olacaktır

•

Database online modda da backup alınabilir.

Restore aşamasında ise,
•

Restore için ilgili bozuk dta file’ın backup’ı ve online redologlar yeterlidir

•

Point in time recovery dediğimiz kavram ile database’i istediğimiz ana getirebiliriz.

•

Database i ancak archive redologların son tarihine kadar restore edebiliriz.

•

Aynı şekilde database ilgili bir SCN anına kadar da restore edebiliriz.
Archive moda sistem şekildeki gibi alınmaktadır.

//YUKARIDAKİ İŞLEMLER TOAD İLE
YAPILIR(LOG_ARCHİVE_DEST,LOG_ARCHİVE_FORMAT,LOG_ARCHİVE_START)
VE SİSTEM AÇILIP KAPANIR.
SQL>select name,log_mode from v$database; ile database archive moda olup olmadığı kontrol edilir.
LOG_ARCHIVE_MAX_PROCESSES parametresi ile arşiv proseslerinin sayısı kontrol edilebilir.
SQL > ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES = 3;
Archive Loglarının yazılacağı yer şu komutlarlada ayarlanabilir.
SQL> ARCHIVE LOG LIST; Arşiv listesi görülebilir.
UNIX:
SQL> ALTER SYSTEM ARCHIVE LOG START TO ‘/ORADATA/ARCHIVE1‘;
WINDOWS :
SQL> ALTER SYSTEM ARCHIVE LOG START TO ‘c:u04OracleTESTlog‘;
Parametre file kullanılarak arşivlemenin otomatik olup olmayacağı ayarlanabilir.

1-) SQL>select name,log_mode from v$database; ile database archive moda olup olmadığı
kontrol edilir.
SQL> select * from v$log; ile sistemde bulunan log dosyalarının konumları tespit edilir.
SQL> select * from v$datafile; ile sistemde bulunan data dosyalarının konumları tespit edilir.
SQL> select * from v$controlfile; ile sistemde bulunan control dosyalarının konumları tespit edilir.
2-) SQL> shutdown abort/immediate/transactional; ile sistem kapatılır.
$ ps -fe|grep -i oracle ile sistemde oracle’a ait iş kalıp kalmadığı sorgulanabilir.
3-) $ORACLE_HOME/dbs altında bulunan init.ora dosyasının bir yedeği alınmalıdır.
Daha sonra init.ora açılıp içine
log_archive_dest= d:archive
log_archive_start = true

SQL > CREATE SPFILE='/u01/oracle/dbs/spfilemynewdb.ora' FROM
PFILE='/u01/oracle/admin/initmynewdb/scripts/init.ora'; ile PFİLE dan SPFİLE oluşturulması sağlanır.
4-) Artık Database’i archive moda açabiliriz.
SQL> startup mount newdb
SQL> alter database newdb archivelog;
SQL> alter database newdb open;
5-) Archive Logların ilgili dizine yazması içinde,
SQL> alter system switch logfile; komutunu kullanıyoruz.
Otomatik arşivlemeyi durdurmak için,
SQL > ALTER SYSTEM ARCHIVE LOG STOP; komutu kullanılır. Yada log_archive_start parametresi
false yapılır.

Eğer logların birden fazla yere yazması isteniyorsa aşağıdaki parametreler ayarlanmalıdır.
log_archive_dest_1 = "LOCATION=/archive1 MANDATORY REOPEN "
log_archive_dest_2 = " SERVICE=standby_db1 MANDATORY REOPEN=600"
log_archive_dest_3 ="LOCATION=/archive2 OPTIONAL"
---Burdaki location Local Disk alanı anlamına gelir, Service ise Uzaktaki Disk alanı anlamına
gelir.Mandotary ‘nin anlamı arşivleme esnasında online redologların tekrar yazılabilmesi için arşivlemenin
doğru olarak tamamlanması gerekmektedir.Optional de ise arşivlemenin doğru tamamlanmaması önemli
değildir.
SQL> ARCHIVE LOG LIST; komutu ile archiveleme durumu hakkında bilgi alınabilir.
Eğer arşivlemenin elle yapılması isteniyorsa;
ALTER SYSTEM ARCHIVE LOG SEQUENCE 052; komutunu kullanmak yeterlidir.
LOG_ARCHIVE_MIN_SUCCEED_DEST = 2 Bu parametre ile destination sayısını minimize
edebiliriz.Minumum 2 tane örnekteki gibi kullanılmalıdır.Dikkat edilmesi gereken destinationlarda
mandotary olmalıdır.
SQL > ALTER SYSTEM SET log_archive_dest_state_3 = DEFER
Yukarıdaki komut ile 2 nolu destinationu kulanılmaz hale getirebiliriz.
SQL > ALTER SYSTEM SET log_archive_dest_state_3 = ENABLE
Yukarıdaki komut ile 2 nolu destinationu kulanılabilir hale getirebiliriz.

LOG_ARCHIVE_FORMAT bize arşiv dosyalaranın nasıl formatlanacağı hakkında bilgi verir.
log_archive_format=%s.arc gibi değerler yazılmalıdır.
%s veya %S ile Log’ların sıra numarasını (Sequence #)
%t veya %T ile Log’ların thread numarasını (Sequence #)
.arc ile de uzantısını belirlemiş oluyoruz.

Yukarıdaki viewlardan ise arşivleme hakkında bilgi alabiliriz.
V$ARCHIVED_LOG: Kontrol file dan arşivleme bilgisini gösterir.
V$ARCHIVE_DEST: Mevcut instance üzerinde tüm Arşivleme bilgisini gösterir.

SELECT destination, binding, target, status
FROM v$archive_dest;
DESTINATION BINDING TARGET STATUS
---------------------- --------- ------- -------/db1/oracle/DEMO/arch MANDATORY PRIMARY VALID
/db2/oracle/DEMO/arch OPTIONAL PRIMARY DEFERRED
standbyDEMO OPTIONAL STANDBY ERROR
OPTIONAL PRIMARY INACTIVE
OPTIONAL PRIMARY INACTIVE

V$LOG_HISTORY: Kontrol file daki log bilgilerini verir.
V$DATABASE: Arşivlemenin mevcut durumunu verir.
V$ARCHIVE_PROCESSES: Arşivleme prosesleri hakkında bilgi alabiliriz.
SELECT * FROM v$archive_processes;
PROCESS STATUS LOG_SEQUENCE STAT
------------- ---------- ------------- ----0 ACTIVE 2014 BUSY
1 ACTIVE 0 IDLE
2 ACTIVE 0 IDLE
3 STOPPED 0 IDLE
4 STOPPED 0 IDLE
5 STOPPED 0 IDLE
6 STOPPED 0 IDLE
7 STOPPED 0 IDLE
8 STOPPED 0 IDLE
9 STOPPED 0 IDLE
10 rows selected.
SQL> ARCHIVE LOG LIST;
Database log mode Archive mode
Automatic archival Enabled
Archive destination /ORADATA/ARCHIVE1/
Oldest online log sequence 1304
Next log sequence to archive 1305
Current log sequence 1305
ORACLE EXPORT VE IMPORT İŞLEMİ
9i ve öncesinde imp ve exp ile yaptığımız işlemleri expdp/impdp ile çok daha hızlı yapabilriiz.Öncelikli
olarak bu işlem için bir directory tanımlamalı ve bu directory i kullanack user veya userlara gerekli hakları
vermeliyiz.
SQL > CREATE OR REPLACE DIRECTORY dump_dir AS '/home/oracle/archive';
SQL > GRANT READ, WRITE ON DIRECTORY dump_dir TO public;
Bu işlemden sonra aşağıdaki komutla bir şemanın exportunu alabiliriz.İstersek işlemci sayısına göre
paralellik verip işlemleri hızlandırab,ilriiz.
CMD > expdp system/oracle schemas=BAHADIR directory=dump_dir dumpfile=FILE.dmp
logfile=FILE.log
istersek FULL=Y ibaresini kullanıp full db exportuda alabiliriz.istersek sadece tekbir tablo yada tabloların
exportunuda alabiliriz.
CMD > expdp system/oracle FULL=Y directory=dump_dir dumpfile=FILE.dmp parallel=8
logfile=FILE.log
CMD > > expdp system/xxxx@DBNAME1 schemas=SCHEMA_NAME
TABLES=deneme1,deneme2 directory=pump_dir dumpfile=FILE.dmp parallel=8
logfile=FILE.log
Bu işlemlerden sonra sıra tam tersi olrak alınan bir exportun import edilmesi vardır.Eğer x bir userla
alınmış export y user'ına import edilecekse remap şema yapmalıyız,yine aynı şekilde şemanın objeleri t1
tablepsacesinden alınmışşsa import ederken t2 tablespace ine import edilecekse remap_tablespace
yapmalıyız.paralel yapma imkanımız varsa yine yapmalıyız.
CMD > impdp system/oracle schemas=BAHADIR directory=dump_dir dumpfile=FILE.dmp
logfile=FILE2.log
bazen başka bir db deki bir şemayı kendi makinamıza almak istiyorsak iki makina arasındaki db linkini
kullanrak sadece aşağıdaki komutu kullanarak işlerimizi yapabiliriz.
CMD > impdp system/xxxx schemas=SCHEMA_NAME
remap_schema=SCHEMA1:SCHEMA2 remap_tablespace=TAB:HUUU directory=pump_dir
network_link=LINK_NAME parallel=4 logfile=FILE.log
http://www.oracle-base.com/articles/11g/PartitioningEnhancements_11gR1.php

Oracle Data Pump ile Single parititon export/transport
Oracle 11g ile birlikte single table partitionlarını veritabanları arasında taşımak mümkün hale gelmiştir,
Normal olarak tablonun tamamını taşımaktansa sadece belli partition’unu taşımak çok daha mantıklıdır.
Bunu örnekle dahada iyi açıklayabilmek adına partititonlarımızı saklayacak 2 tane tablespace yaratacağız
ve test açamçlı olarak bu tablespace ler üzerinde quotalar vereceğiz.
[oracle@rac1 ~]$ sqlplus '/as sysdba'
SQL> CREATE TABLESPACE transport_test_ts_1
DATAFILE 'tt_ts1.dbf'
SIZE 128K AUTOEXTEND ON NEXT 128K;
SQL> CREATE TABLESPACE transport_test_ts_2
DATAFILE 'tt_ts2.dbf'
SIZE 128K AUTOEXTEND ON NEXT 128K;
SQL> ALTER USER test
QUOTA UNLIMITED ON transport_test_ts_1
QUOTA UNLIMITED ON transport_test_ts_2;
SQL> CONN test/test
Test kullanıcımızla bağlandıktan sonra örnek bir partition tablo yaratıyoruz ve içini veri ile dolduruyoruz.
SQL> CREATE TABLE transport_test_tab (
id
NUMBER NOT NULL,
code
VARCHAR2(10) NOT NULL,
description VARCHAR2(50),
created_date DATE,
CONSTRAINT transport_test_pk PRIMARY KEY (id)
)
PARTITION BY RANGE (created_date)
(
PARTITION part_2010 VALUES LESS THAN (TO_DATE('01-10-2010','DD-MM-YYYY'))
TABLESPACE transport_test_ts_1,
PARTITION part_2011 VALUES LESS THAN (TO_DATE('01-10-2011','DD-MM-YYYY'))
TABLESPACE transport_test_ts_2
);
SQL> INSERT INTO transport_test_tab
SQL> INSERT INTO transport_test_tab
SQL> INSERT INTO transport_test_tab
ADD_MONTHS(SYSDATE,12));
SQL> INSERT INTO transport_test_tab
ADD_MONTHS(SYSDATE,12));
SQL> COMMIT;

VALUES (1, 'ONE', '1 ONE', SYSDATE);
VALUES (2, 'TWO', '2 TWO', SYSDATE);
VALUES (3, 'THREE', '3 THREE',
VALUES (4, 'FOUR', '4 FOUR',

Tablomuzun istatistiğini alıp ,tablomuza ait partitionları ve içerdikleri kayıtlara bir bakalım.
SQL> EXEC DBMS_STATS.gather_table_stats(USER, 'TRANSPORT_TEST_TAB');
SQL>
SQL>
SQL>
SQL>

COLUMN table_name FORMAT A20
COLUMN partition_name FORMAT A20
COLUMN tablespace_name FORMAT A20
set linesize 1000

SQL> SELECT table_name, partition_name, tablespace_name, num_rows
FROM
user_tab_partitions
Where table_name='TRANSPORT_TEST_TAB';
TABLE_NAME
-------------------TRANSPORT_TEST_TAB
TRANSPORT_TEST_TAB

PARTITION_NAME
-------------------PART_2010
PART_2011

TABLESPACE_NAME
NUM_ROWS
-------------------- ---------TRANSPORT_TEST_TS_1
2
TRANSPORT_TEST_TS_2
2

Görüldüğü gibi her partition 2 şer kayıt içeriyor.
Transport yapacağımız tablespace ler kesinlikle readonly modda olmalıdır.
SQL> ALTER TABLESPACE transport_test_ts_1 READ ONLY;
Şu an herşey hazır 2010 parititonunu export yapabiliriz.
[oracle@rac1 ~]$ sqlplus '/as sysdba'
SQL> CREATE OR REPLACE DIRECTORY data_pump_dir AS '/u01/app11g/backup/';
SQL> GRANT READ, WRITE ON DIRECTORY data_pump_dir TO public;
[oracle@rac1 ~]$ expdp system/oracle tables=test.transport_test_tab:part_2010
transportable=always directory=data_pump_dir dumpfile=part_2010.dmp
Yapılan export’un ouput’u aşağıdaki gibi olacaktır.
Export: Release 11.2.0.1.0 - Production on Wed Sep 8 13:35:17 2010
Copyright (c) 1982, 2009, Oracle and/or its affiliates.

All rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Starting "SYSTEM"."SYS_EXPORT_TABLE_01": system/********
tables=test.transport_test_tab:part_2010 transportable=always
directory=data_pump_dir dumpfile=part_2010.dmp
Processing object type TABLE_EXPORT/TABLE/PLUGTS_BLK
Processing object type TABLE_EXPORT/TABLE/TABLE
Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX
Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Processing object type TABLE_EXPORT/TABLE/END_PLUGTS_BLK
Master table "SYSTEM"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded
******************************************************************************
Dump file set for SYSTEM.SYS_EXPORT_TABLE_01 is:
/u01/app11g/backup/part_2010.dmp
******************************************************************************
Datafiles required for transportable tablespace TRANSPORT_TEST_TS_1:
/u01/app11g/oracle/product/11.2.0/db_1/dbs/tt_ts1.dbf
Datafiles required for transportable tablespace USERS:
/u01/app/oracle/oradata/EDUCATE/users01.dbf
Job "SYSTEM"."SYS_EXPORT_TABLE_01" successfully completed at 13:36:23
Şimdi geri dönme yani backuptan geri alma testi yapacağız bunun için ilgili tabloyu ve onun ait olduğu
tablespace leri drop ediyoruz.
[oracle@rac1 ~]$ sqlplus '/as sysdba'
SQL> DROP TABLE test.transport_test_tab;
SQL> DROP TABLESPACE transport_test_ts_1 INCLUDING CONTENTS;
SQL> DROP TABLESPACE transport_test_ts_2 INCLUDING CONTENTS AND DATAFILES;
Dikkat edersek 1.tablespace te sadece content yani syntax bilgisini drop ettik,tablespace in datafile’ı halen
mevcuttur.
Şimdi artık aldığımız export backup ındaki bilgiyi import edebiliriz.
[oracle@rac1 ~]$ impdp system/oracle partition_options=departition
dumpfile=part_2010.dmp transport_datafiles='tt_ts1.dbf'
İşlemin output bilgiside aşağıdaki gibi olacaktır,

$ impdp system/password partition_options=departition dumpfile=part_2007.dmp
transport_datafiles='/u01/app/oracle/oradata/DB11G/tt_ts_1'
Import: Release 11.2.0.1.0 - Production on Wed Sep 8 13:42:38 2010
Copyright (c) 1982, 2009, Oracle and/or its affiliates.

All rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Master table "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01" successfully
loaded/unloaded
Starting "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01": system/********
partition_options=departition dumpfile=part_2010.dmp
transport_datafiles=tt_ts1.dbf
Processing object type TABLE_EXPORT/TABLE/PLUGTS_BLK
Processing object type TABLE_EXPORT/TABLE/TABLE
Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX
ORA-39083: Object type INDEX failed to create with error:
ORA-00942: table or view does not exist
Failing sql is:
CREATE UNIQUE INDEX "TEST"."TRANSPORT_TEST_PK" ON "TEST"."TRANSPORT_TEST_TAB"
("ID") PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE(SEG_FILE 4 SEG_BLOCK 635
OBJNO_REUSE 85559 INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS
2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT
FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "USERS" PARALLEL 1
Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
ORA-39083: Object type CONSTRAINT failed to create with error:
ORA-00942: table or view does not exist
Failing sql is:
ALTER TABLE "TEST"."TRANSPORT_TEST_TAB" ADD CONSTRAINT "TRANSPORT_TEST_PK"
PRIMARY KEY ("ID") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255
STORAGE(SEG_FILE 4 SEG_BLOCK 635 OBJNO_REUSE 85559 INITIAL 65536 NEXT 1048576
MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE
"USERS" ENABLE
Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
ORA-39112: Dependent object type INDEX_STATISTICS skipped, base object type
INDEX:"TEST"."TRANSPORT_TEST_PK" creation failed
Processing object type TABLE_EXPORT/TABLE/END_PLUGTS_BLK
Job "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01" completed with 3 error(s) at
13:42:50
Tablo segmenti tablo ismi ve partition isimlerinin kombinasyonu ile isimlendirilmiştir, bu yüzden buna bağlı
olan objeler hata vermiştir çünkü yanlış tablo ismini aramaktadırlar.O yüzden verilen hataları görmezden
geliyoruz. Şimdi artık oluşan yeni segmenti aşağıda görebiliriz.
[oracle@rac1 ~]$ sqlplus '/as sysdba'
SQL> CONN test/test
SQL> EXEC DBMS_STATS.gather_schema_stats(USER);
SQL> COLUMN table_name FORMAT A30
SQL> COLUMN tablespace_name FORMAT A20
SQL> set linesize 1000
SQL> SELECT table_name, tablespace_name, partitioned, num_rows
FROM
user_tables
Where tablespace_name like '%TRANSPORT_TEST_TS_1%';
TABLE_NAME
TABLESPACE_NAME
PAR
NUM_ROWS
------------------------------ -------------------- --- ---------TRANSPORT_TES_PART_2007
TRANSPORT_TEST_TS_1 NO
2
1 row selected.
NORMAL EXPORT/IMPORT
[oracle@rac1 ~]$ exp system/oracle owner=DOGANHAYAT
file=/temp_data1/DOGANHAYATExport.dmp log=/temp_data1/DOGANHAYATExport.log
[oracle@rac1 ~]$ imp system/oracle fromuser=DOGANHAYAT touser=DOGANHAYAT
file=/temp_data1/DOGANHAYATExport.dmp log=/temp_data1/DOGANHAYATExport.log
buffer=10000000 commit=y &
[oracle@rac1 ~]$ buffer=10000000 commit=y full=y statistics=none &

SQL> @/u01/app/oracle/product/10.2.0/db_1/rdbms/admin/utlrp.sql;
SQL> @?/rdbms/admin/utlrp.sql;

More Related Content

Viewers also liked

Create manula and automaticly database
Create manula and automaticly databaseCreate manula and automaticly database
Create manula and automaticly databaseAnar Godjaev
 
Installing 12c R1 database on oracle linux
Installing 12c R1 database on oracle linuxInstalling 12c R1 database on oracle linux
Installing 12c R1 database on oracle linuxAnar Godjaev
 
Geliştiriciler için Oracle_Part_2
Geliştiriciler için Oracle_Part_2Geliştiriciler için Oracle_Part_2
Geliştiriciler için Oracle_Part_2Anar Godjaev
 
Profile backup mail_atma_script (disk drumu/export)
Profile backup mail_atma_script (disk drumu/export)Profile backup mail_atma_script (disk drumu/export)
Profile backup mail_atma_script (disk drumu/export)Anar Godjaev
 
생방송바둑이 KTX33,COM 생방송블랙잭오션파라다이스 릴게임qa5
생방송바둑이 KTX33,COM 생방송블랙잭오션파라다이스 릴게임qa5 생방송바둑이 KTX33,COM 생방송블랙잭오션파라다이스 릴게임qa5
생방송바둑이 KTX33,COM 생방송블랙잭오션파라다이스 릴게임qa5 장 민호
 

Viewers also liked (11)

Create manula and automaticly database
Create manula and automaticly databaseCreate manula and automaticly database
Create manula and automaticly database
 
11 g RAC -ASM
11 g RAC -ASM11 g RAC -ASM
11 g RAC -ASM
 
Installing 12c R1 database on oracle linux
Installing 12c R1 database on oracle linuxInstalling 12c R1 database on oracle linux
Installing 12c R1 database on oracle linux
 
Geliştiriciler için Oracle_Part_2
Geliştiriciler için Oracle_Part_2Geliştiriciler için Oracle_Part_2
Geliştiriciler için Oracle_Part_2
 
Profile backup mail_atma_script (disk drumu/export)
Profile backup mail_atma_script (disk drumu/export)Profile backup mail_atma_script (disk drumu/export)
Profile backup mail_atma_script (disk drumu/export)
 
9. Літературні казки
9. Літературні казки9. Літературні казки
9. Літературні казки
 
Story of Saint George
Story of Saint GeorgeStory of Saint George
Story of Saint George
 
Tarea seminario 5
Tarea seminario 5Tarea seminario 5
Tarea seminario 5
 
7. Журнали.
7. Журнали.7. Журнали.
7. Журнали.
 
Bottle Labeling Machines
Bottle Labeling Machines  Bottle Labeling Machines
Bottle Labeling Machines
 
생방송바둑이 KTX33,COM 생방송블랙잭오션파라다이스 릴게임qa5
생방송바둑이 KTX33,COM 생방송블랙잭오션파라다이스 릴게임qa5 생방송바둑이 KTX33,COM 생방송블랙잭오션파라다이스 릴게임qa5
생방송바둑이 KTX33,COM 생방송블랙잭오션파라다이스 릴게임qa5
 

Similar to DATABASEI ARCHIVE MODA ALMA

Oracle Audit Vault & Database Vault
Oracle Audit Vault & Database VaultOracle Audit Vault & Database Vault
Oracle Audit Vault & Database VaultOrhan ERIPEK
 
Stored procedure
Stored procedureStored procedure
Stored procedureoktaygokgol
 
9.hafta cüneyt tomruk
9.hafta cüneyt tomruk9.hafta cüneyt tomruk
9.hafta cüneyt tomrukoktaygokgol
 
Performance Tuni̇ng
Performance Tuni̇ngPerformance Tuni̇ng
Performance Tuni̇ngAnar Godjaev
 
Oracle 10g Database Server Kurulum
Oracle 10g Database Server KurulumOracle 10g Database Server Kurulum
Oracle 10g Database Server KurulumAnar Godjaev
 
Veri̇ tabani oluşturma ve yapilandirma
Veri̇ tabani oluşturma ve yapilandirmaVeri̇ tabani oluşturma ve yapilandirma
Veri̇ tabani oluşturma ve yapilandirmaoktaygokgol
 
Oracle Golden Gate
Oracle Golden GateOracle Golden Gate
Oracle Golden GateAnar Godjaev
 
Nmap sonuclarinin yorumlanmasi
Nmap sonuclarinin yorumlanmasiNmap sonuclarinin yorumlanmasi
Nmap sonuclarinin yorumlanmasicigalkan
 
Veri̇ tabani kurtarma i̇şlemleri̇ sunu
Veri̇ tabani kurtarma i̇şlemleri̇ sunuVeri̇ tabani kurtarma i̇şlemleri̇ sunu
Veri̇ tabani kurtarma i̇şlemleri̇ sunuoktaygokgol
 
Oracle database architecture
Oracle database architectureOracle database architecture
Oracle database architectureHızlan ERPAK
 
İleri Seviye T-SQL Programlama - Chapter 11
İleri Seviye T-SQL Programlama - Chapter 11İleri Seviye T-SQL Programlama - Chapter 11
İleri Seviye T-SQL Programlama - Chapter 11Cihan Özhan
 
Oracle Tablespace Yonetimi
Oracle Tablespace YonetimiOracle Tablespace Yonetimi
Oracle Tablespace YonetimiAnar Godjaev
 
Pwnlydays - Linux 101
Pwnlydays - Linux 101Pwnlydays - Linux 101
Pwnlydays - Linux 101canyoupwn.me
 
Linux101 Temel Komutlar-Dizin Yapısı
Linux101 Temel Komutlar-Dizin YapısıLinux101 Temel Komutlar-Dizin Yapısı
Linux101 Temel Komutlar-Dizin YapısıSDU CYBERLAB
 
Komut Satırıdından Arch Linux Kurulumu(Manuel Çekirdek Derlemesi Dahil)
Komut Satırıdından Arch Linux Kurulumu(Manuel Çekirdek Derlemesi Dahil)Komut Satırıdından Arch Linux Kurulumu(Manuel Çekirdek Derlemesi Dahil)
Komut Satırıdından Arch Linux Kurulumu(Manuel Çekirdek Derlemesi Dahil)furkan mataraci
 
Kullanici tanimli fonksi̇yons
Kullanici tanimli fonksi̇yonsKullanici tanimli fonksi̇yons
Kullanici tanimli fonksi̇yonsoktaygokgol
 

Similar to DATABASEI ARCHIVE MODA ALMA (20)

Oracle Audit Vault & Database Vault
Oracle Audit Vault & Database VaultOracle Audit Vault & Database Vault
Oracle Audit Vault & Database Vault
 
Stored procedure
Stored procedureStored procedure
Stored procedure
 
9.hafta cüneyt tomruk
9.hafta cüneyt tomruk9.hafta cüneyt tomruk
9.hafta cüneyt tomruk
 
Mysql2
Mysql2Mysql2
Mysql2
 
Performance Tuni̇ng
Performance Tuni̇ngPerformance Tuni̇ng
Performance Tuni̇ng
 
Oracle 10g Database Server Kurulum
Oracle 10g Database Server KurulumOracle 10g Database Server Kurulum
Oracle 10g Database Server Kurulum
 
Veri̇ tabani oluşturma ve yapilandirma
Veri̇ tabani oluşturma ve yapilandirmaVeri̇ tabani oluşturma ve yapilandirma
Veri̇ tabani oluşturma ve yapilandirma
 
Oracle Golden Gate
Oracle Golden GateOracle Golden Gate
Oracle Golden Gate
 
Nmap sonuclarinin yorumlanmasi
Nmap sonuclarinin yorumlanmasiNmap sonuclarinin yorumlanmasi
Nmap sonuclarinin yorumlanmasi
 
Veri̇ tabani kurtarma i̇şlemleri̇ sunu
Veri̇ tabani kurtarma i̇şlemleri̇ sunuVeri̇ tabani kurtarma i̇şlemleri̇ sunu
Veri̇ tabani kurtarma i̇şlemleri̇ sunu
 
Oracle11g
Oracle11gOracle11g
Oracle11g
 
Oracle database architecture
Oracle database architectureOracle database architecture
Oracle database architecture
 
İleri Seviye T-SQL Programlama - Chapter 11
İleri Seviye T-SQL Programlama - Chapter 11İleri Seviye T-SQL Programlama - Chapter 11
İleri Seviye T-SQL Programlama - Chapter 11
 
Oracle Tablespace Yonetimi
Oracle Tablespace YonetimiOracle Tablespace Yonetimi
Oracle Tablespace Yonetimi
 
Pwnlydays - Linux 101
Pwnlydays - Linux 101Pwnlydays - Linux 101
Pwnlydays - Linux 101
 
PostgreSQL'i öğrenmek ve yönetmek
PostgreSQL'i öğrenmek ve yönetmekPostgreSQL'i öğrenmek ve yönetmek
PostgreSQL'i öğrenmek ve yönetmek
 
Assembly for Hackers
Assembly for HackersAssembly for Hackers
Assembly for Hackers
 
Linux101 Temel Komutlar-Dizin Yapısı
Linux101 Temel Komutlar-Dizin YapısıLinux101 Temel Komutlar-Dizin Yapısı
Linux101 Temel Komutlar-Dizin Yapısı
 
Komut Satırıdından Arch Linux Kurulumu(Manuel Çekirdek Derlemesi Dahil)
Komut Satırıdından Arch Linux Kurulumu(Manuel Çekirdek Derlemesi Dahil)Komut Satırıdından Arch Linux Kurulumu(Manuel Çekirdek Derlemesi Dahil)
Komut Satırıdından Arch Linux Kurulumu(Manuel Çekirdek Derlemesi Dahil)
 
Kullanici tanimli fonksi̇yons
Kullanici tanimli fonksi̇yonsKullanici tanimli fonksi̇yons
Kullanici tanimli fonksi̇yons
 

More from Anar Godjaev

Asm disk group migration from
Asm disk group migration from Asm disk group migration from
Asm disk group migration from Anar Godjaev
 
How to protect your sensitive data using oracle database vault / Creating and...
How to protect your sensitive data using oracle database vault / Creating and...How to protect your sensitive data using oracle database vault / Creating and...
How to protect your sensitive data using oracle database vault / Creating and...Anar Godjaev
 
how to protect your sensitive data using oracle database vault
how to protect your sensitive data using oracle database vaulthow to protect your sensitive data using oracle database vault
how to protect your sensitive data using oracle database vaultAnar Godjaev
 
Database Vault / Verinin Güvenliği
Database Vault /  Verinin GüvenliğiDatabase Vault /  Verinin Güvenliği
Database Vault / Verinin GüvenliğiAnar Godjaev
 
DataPump ile Single Parititon Export
DataPump ile Single Parititon ExportDataPump ile Single Parititon Export
DataPump ile Single Parititon ExportAnar Godjaev
 
Veri̇tabani ve Kullanici Yöneti̇mi̇
Veri̇tabani ve Kullanici Yöneti̇mi̇Veri̇tabani ve Kullanici Yöneti̇mi̇
Veri̇tabani ve Kullanici Yöneti̇mi̇Anar Godjaev
 
Conditional Control
Conditional ControlConditional Control
Conditional ControlAnar Godjaev
 
Backup and Recovery
Backup and RecoveryBackup and Recovery
Backup and RecoveryAnar Godjaev
 

More from Anar Godjaev (20)

Oracle GoldenGate
Oracle GoldenGateOracle GoldenGate
Oracle GoldenGate
 
Asm disk group migration from
Asm disk group migration from Asm disk group migration from
Asm disk group migration from
 
How to protect your sensitive data using oracle database vault / Creating and...
How to protect your sensitive data using oracle database vault / Creating and...How to protect your sensitive data using oracle database vault / Creating and...
How to protect your sensitive data using oracle database vault / Creating and...
 
how to protect your sensitive data using oracle database vault
how to protect your sensitive data using oracle database vaulthow to protect your sensitive data using oracle database vault
how to protect your sensitive data using oracle database vault
 
Database Vault / Verinin Güvenliği
Database Vault /  Verinin GüvenliğiDatabase Vault /  Verinin Güvenliği
Database Vault / Verinin Güvenliği
 
DataPump ile Single Parititon Export
DataPump ile Single Parititon ExportDataPump ile Single Parititon Export
DataPump ile Single Parititon Export
 
Contraints
ContraintsContraints
Contraints
 
Oracle SQL
Oracle SQLOracle SQL
Oracle SQL
 
Veri̇tabani ve Kullanici Yöneti̇mi̇
Veri̇tabani ve Kullanici Yöneti̇mi̇Veri̇tabani ve Kullanici Yöneti̇mi̇
Veri̇tabani ve Kullanici Yöneti̇mi̇
 
Conditional Control
Conditional ControlConditional Control
Conditional Control
 
PL/SQL Blocks
PL/SQL BlocksPL/SQL Blocks
PL/SQL Blocks
 
Wait Interface
Wait InterfaceWait Interface
Wait Interface
 
Tuning SGA
Tuning SGATuning SGA
Tuning SGA
 
Parallel Server
Parallel ServerParallel Server
Parallel Server
 
Table Partitions
Table PartitionsTable Partitions
Table Partitions
 
Backup and Recovery
Backup and RecoveryBackup and Recovery
Backup and Recovery
 
Memory Management
Memory ManagementMemory Management
Memory Management
 
LogMiner
LogMinerLogMiner
LogMiner
 
Undo Management
Undo ManagementUndo Management
Undo Management
 
ASM
ASMASM
ASM
 

DATABASEI ARCHIVE MODA ALMA

  • 1. VERİTABANI YÖNETİMİ DATABASE’I ARCHIVE MODA ALMA 7/24 çalışan database’ler için Archive moda olmak çok öenmlidir,çünkü bu sistemeler herhangi bir veri kaybına tahammülü olmayan sistemlerdir. Archive Moda olmayan bir sistem şu şekildedir. Redologlar dairesel bir şekilde işlem görür. Redologlar bir check pointten sonra yeniden kullanılabilir Bu Sistemde Redolog filelar Archive dosyalarına yazılmaz böylece her bir yeni bilgi redologlar üzerine yazılır,bu şekilde eski bilgiler ezilmiş üzerine yenileri gelmiş olur. * Herhangi bir datafile üzerinde arıza oluştuğu zaman,İlgili datafile drop yada database restore olana kadar database çalışmayacaktır. * Backup almak için operating sistem komutları kullanılacaktır,aynı zamanda database’in kapalı olması gerekmektedir. * Her backup setine datafileları ve control fileları muhakak koymalıyız fakat online redologlara gerek yoktur. * Her seferinde online redologlar ezildiği için herhangi bir tehlike anında geriye dönüş olmayacaktır. Restore Anında ise; • Restore etmek için full datafile ları ve control file ları kullanmak zorundayız.
  • 2. • Yada export uygulaması ve import uygulaması kullanılarak backup/recovery yapılabilir.Bu şekilde işleme incomplate recovery olarak adlandırılmaktadır. Archive Modda olan bir sistem şu şekildedir. • Bu şekilde her bir değişiklik Archive dosylarına yazılmaktadır. • Data kayıplarına karşı en yüksek düzeyde koruma sağlanmış olacaktır • Database online modda da backup alınabilir. Restore aşamasında ise, • Restore için ilgili bozuk dta file’ın backup’ı ve online redologlar yeterlidir • Point in time recovery dediğimiz kavram ile database’i istediğimiz ana getirebiliriz. • Database i ancak archive redologların son tarihine kadar restore edebiliriz. • Aynı şekilde database ilgili bir SCN anına kadar da restore edebiliriz.
  • 3. Archive moda sistem şekildeki gibi alınmaktadır. //YUKARIDAKİ İŞLEMLER TOAD İLE YAPILIR(LOG_ARCHİVE_DEST,LOG_ARCHİVE_FORMAT,LOG_ARCHİVE_START) VE SİSTEM AÇILIP KAPANIR. SQL>select name,log_mode from v$database; ile database archive moda olup olmadığı kontrol edilir. LOG_ARCHIVE_MAX_PROCESSES parametresi ile arşiv proseslerinin sayısı kontrol edilebilir. SQL > ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES = 3;
  • 4. Archive Loglarının yazılacağı yer şu komutlarlada ayarlanabilir. SQL> ARCHIVE LOG LIST; Arşiv listesi görülebilir. UNIX: SQL> ALTER SYSTEM ARCHIVE LOG START TO ‘/ORADATA/ARCHIVE1‘; WINDOWS : SQL> ALTER SYSTEM ARCHIVE LOG START TO ‘c:u04OracleTESTlog‘;
  • 5. Parametre file kullanılarak arşivlemenin otomatik olup olmayacağı ayarlanabilir. 1-) SQL>select name,log_mode from v$database; ile database archive moda olup olmadığı kontrol edilir. SQL> select * from v$log; ile sistemde bulunan log dosyalarının konumları tespit edilir. SQL> select * from v$datafile; ile sistemde bulunan data dosyalarının konumları tespit edilir. SQL> select * from v$controlfile; ile sistemde bulunan control dosyalarının konumları tespit edilir. 2-) SQL> shutdown abort/immediate/transactional; ile sistem kapatılır. $ ps -fe|grep -i oracle ile sistemde oracle’a ait iş kalıp kalmadığı sorgulanabilir. 3-) $ORACLE_HOME/dbs altında bulunan init.ora dosyasının bir yedeği alınmalıdır. Daha sonra init.ora açılıp içine log_archive_dest= d:archive log_archive_start = true SQL > CREATE SPFILE='/u01/oracle/dbs/spfilemynewdb.ora' FROM PFILE='/u01/oracle/admin/initmynewdb/scripts/init.ora'; ile PFİLE dan SPFİLE oluşturulması sağlanır. 4-) Artık Database’i archive moda açabiliriz. SQL> startup mount newdb SQL> alter database newdb archivelog; SQL> alter database newdb open; 5-) Archive Logların ilgili dizine yazması içinde, SQL> alter system switch logfile; komutunu kullanıyoruz.
  • 6. Otomatik arşivlemeyi durdurmak için, SQL > ALTER SYSTEM ARCHIVE LOG STOP; komutu kullanılır. Yada log_archive_start parametresi false yapılır. Eğer logların birden fazla yere yazması isteniyorsa aşağıdaki parametreler ayarlanmalıdır. log_archive_dest_1 = "LOCATION=/archive1 MANDATORY REOPEN " log_archive_dest_2 = " SERVICE=standby_db1 MANDATORY REOPEN=600" log_archive_dest_3 ="LOCATION=/archive2 OPTIONAL" ---Burdaki location Local Disk alanı anlamına gelir, Service ise Uzaktaki Disk alanı anlamına gelir.Mandotary ‘nin anlamı arşivleme esnasında online redologların tekrar yazılabilmesi için arşivlemenin doğru olarak tamamlanması gerekmektedir.Optional de ise arşivlemenin doğru tamamlanmaması önemli değildir. SQL> ARCHIVE LOG LIST; komutu ile archiveleme durumu hakkında bilgi alınabilir. Eğer arşivlemenin elle yapılması isteniyorsa; ALTER SYSTEM ARCHIVE LOG SEQUENCE 052; komutunu kullanmak yeterlidir.
  • 7. LOG_ARCHIVE_MIN_SUCCEED_DEST = 2 Bu parametre ile destination sayısını minimize edebiliriz.Minumum 2 tane örnekteki gibi kullanılmalıdır.Dikkat edilmesi gereken destinationlarda mandotary olmalıdır. SQL > ALTER SYSTEM SET log_archive_dest_state_3 = DEFER Yukarıdaki komut ile 2 nolu destinationu kulanılmaz hale getirebiliriz. SQL > ALTER SYSTEM SET log_archive_dest_state_3 = ENABLE Yukarıdaki komut ile 2 nolu destinationu kulanılabilir hale getirebiliriz. LOG_ARCHIVE_FORMAT bize arşiv dosyalaranın nasıl formatlanacağı hakkında bilgi verir.
  • 8. log_archive_format=%s.arc gibi değerler yazılmalıdır. %s veya %S ile Log’ların sıra numarasını (Sequence #) %t veya %T ile Log’ların thread numarasını (Sequence #) .arc ile de uzantısını belirlemiş oluyoruz. Yukarıdaki viewlardan ise arşivleme hakkında bilgi alabiliriz. V$ARCHIVED_LOG: Kontrol file dan arşivleme bilgisini gösterir. V$ARCHIVE_DEST: Mevcut instance üzerinde tüm Arşivleme bilgisini gösterir. SELECT destination, binding, target, status FROM v$archive_dest; DESTINATION BINDING TARGET STATUS ---------------------- --------- ------- -------/db1/oracle/DEMO/arch MANDATORY PRIMARY VALID /db2/oracle/DEMO/arch OPTIONAL PRIMARY DEFERRED standbyDEMO OPTIONAL STANDBY ERROR OPTIONAL PRIMARY INACTIVE OPTIONAL PRIMARY INACTIVE V$LOG_HISTORY: Kontrol file daki log bilgilerini verir. V$DATABASE: Arşivlemenin mevcut durumunu verir. V$ARCHIVE_PROCESSES: Arşivleme prosesleri hakkında bilgi alabiliriz.
  • 9. SELECT * FROM v$archive_processes; PROCESS STATUS LOG_SEQUENCE STAT ------------- ---------- ------------- ----0 ACTIVE 2014 BUSY 1 ACTIVE 0 IDLE 2 ACTIVE 0 IDLE 3 STOPPED 0 IDLE 4 STOPPED 0 IDLE 5 STOPPED 0 IDLE 6 STOPPED 0 IDLE 7 STOPPED 0 IDLE 8 STOPPED 0 IDLE 9 STOPPED 0 IDLE 10 rows selected. SQL> ARCHIVE LOG LIST; Database log mode Archive mode Automatic archival Enabled Archive destination /ORADATA/ARCHIVE1/ Oldest online log sequence 1304 Next log sequence to archive 1305 Current log sequence 1305 ORACLE EXPORT VE IMPORT İŞLEMİ 9i ve öncesinde imp ve exp ile yaptığımız işlemleri expdp/impdp ile çok daha hızlı yapabilriiz.Öncelikli olarak bu işlem için bir directory tanımlamalı ve bu directory i kullanack user veya userlara gerekli hakları vermeliyiz. SQL > CREATE OR REPLACE DIRECTORY dump_dir AS '/home/oracle/archive'; SQL > GRANT READ, WRITE ON DIRECTORY dump_dir TO public; Bu işlemden sonra aşağıdaki komutla bir şemanın exportunu alabiliriz.İstersek işlemci sayısına göre paralellik verip işlemleri hızlandırab,ilriiz. CMD > expdp system/oracle schemas=BAHADIR directory=dump_dir dumpfile=FILE.dmp logfile=FILE.log
  • 10. istersek FULL=Y ibaresini kullanıp full db exportuda alabiliriz.istersek sadece tekbir tablo yada tabloların exportunuda alabiliriz. CMD > expdp system/oracle FULL=Y directory=dump_dir dumpfile=FILE.dmp parallel=8 logfile=FILE.log CMD > > expdp system/xxxx@DBNAME1 schemas=SCHEMA_NAME TABLES=deneme1,deneme2 directory=pump_dir dumpfile=FILE.dmp parallel=8 logfile=FILE.log Bu işlemlerden sonra sıra tam tersi olrak alınan bir exportun import edilmesi vardır.Eğer x bir userla alınmış export y user'ına import edilecekse remap şema yapmalıyız,yine aynı şekilde şemanın objeleri t1 tablepsacesinden alınmışşsa import ederken t2 tablespace ine import edilecekse remap_tablespace yapmalıyız.paralel yapma imkanımız varsa yine yapmalıyız. CMD > impdp system/oracle schemas=BAHADIR directory=dump_dir dumpfile=FILE.dmp logfile=FILE2.log bazen başka bir db deki bir şemayı kendi makinamıza almak istiyorsak iki makina arasındaki db linkini kullanrak sadece aşağıdaki komutu kullanarak işlerimizi yapabiliriz. CMD > impdp system/xxxx schemas=SCHEMA_NAME remap_schema=SCHEMA1:SCHEMA2 remap_tablespace=TAB:HUUU directory=pump_dir network_link=LINK_NAME parallel=4 logfile=FILE.log http://www.oracle-base.com/articles/11g/PartitioningEnhancements_11gR1.php Oracle Data Pump ile Single parititon export/transport
  • 11. Oracle 11g ile birlikte single table partitionlarını veritabanları arasında taşımak mümkün hale gelmiştir, Normal olarak tablonun tamamını taşımaktansa sadece belli partition’unu taşımak çok daha mantıklıdır. Bunu örnekle dahada iyi açıklayabilmek adına partititonlarımızı saklayacak 2 tane tablespace yaratacağız ve test açamçlı olarak bu tablespace ler üzerinde quotalar vereceğiz. [oracle@rac1 ~]$ sqlplus '/as sysdba' SQL> CREATE TABLESPACE transport_test_ts_1 DATAFILE 'tt_ts1.dbf' SIZE 128K AUTOEXTEND ON NEXT 128K; SQL> CREATE TABLESPACE transport_test_ts_2 DATAFILE 'tt_ts2.dbf' SIZE 128K AUTOEXTEND ON NEXT 128K; SQL> ALTER USER test QUOTA UNLIMITED ON transport_test_ts_1 QUOTA UNLIMITED ON transport_test_ts_2; SQL> CONN test/test Test kullanıcımızla bağlandıktan sonra örnek bir partition tablo yaratıyoruz ve içini veri ile dolduruyoruz. SQL> CREATE TABLE transport_test_tab ( id NUMBER NOT NULL, code VARCHAR2(10) NOT NULL, description VARCHAR2(50), created_date DATE, CONSTRAINT transport_test_pk PRIMARY KEY (id) ) PARTITION BY RANGE (created_date) ( PARTITION part_2010 VALUES LESS THAN (TO_DATE('01-10-2010','DD-MM-YYYY')) TABLESPACE transport_test_ts_1, PARTITION part_2011 VALUES LESS THAN (TO_DATE('01-10-2011','DD-MM-YYYY')) TABLESPACE transport_test_ts_2 ); SQL> INSERT INTO transport_test_tab SQL> INSERT INTO transport_test_tab SQL> INSERT INTO transport_test_tab ADD_MONTHS(SYSDATE,12)); SQL> INSERT INTO transport_test_tab ADD_MONTHS(SYSDATE,12)); SQL> COMMIT; VALUES (1, 'ONE', '1 ONE', SYSDATE); VALUES (2, 'TWO', '2 TWO', SYSDATE); VALUES (3, 'THREE', '3 THREE', VALUES (4, 'FOUR', '4 FOUR', Tablomuzun istatistiğini alıp ,tablomuza ait partitionları ve içerdikleri kayıtlara bir bakalım.
  • 12. SQL> EXEC DBMS_STATS.gather_table_stats(USER, 'TRANSPORT_TEST_TAB'); SQL> SQL> SQL> SQL> COLUMN table_name FORMAT A20 COLUMN partition_name FORMAT A20 COLUMN tablespace_name FORMAT A20 set linesize 1000 SQL> SELECT table_name, partition_name, tablespace_name, num_rows FROM user_tab_partitions Where table_name='TRANSPORT_TEST_TAB'; TABLE_NAME -------------------TRANSPORT_TEST_TAB TRANSPORT_TEST_TAB PARTITION_NAME -------------------PART_2010 PART_2011 TABLESPACE_NAME NUM_ROWS -------------------- ---------TRANSPORT_TEST_TS_1 2 TRANSPORT_TEST_TS_2 2 Görüldüğü gibi her partition 2 şer kayıt içeriyor. Transport yapacağımız tablespace ler kesinlikle readonly modda olmalıdır. SQL> ALTER TABLESPACE transport_test_ts_1 READ ONLY; Şu an herşey hazır 2010 parititonunu export yapabiliriz. [oracle@rac1 ~]$ sqlplus '/as sysdba' SQL> CREATE OR REPLACE DIRECTORY data_pump_dir AS '/u01/app11g/backup/'; SQL> GRANT READ, WRITE ON DIRECTORY data_pump_dir TO public; [oracle@rac1 ~]$ expdp system/oracle tables=test.transport_test_tab:part_2010 transportable=always directory=data_pump_dir dumpfile=part_2010.dmp Yapılan export’un ouput’u aşağıdaki gibi olacaktır. Export: Release 11.2.0.1.0 - Production on Wed Sep 8 13:35:17 2010 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 Production With the Partitioning, OLAP, Data Mining and Real Application Testing options Starting "SYSTEM"."SYS_EXPORT_TABLE_01": system/******** tables=test.transport_test_tab:part_2010 transportable=always directory=data_pump_dir dumpfile=part_2010.dmp Processing object type TABLE_EXPORT/TABLE/PLUGTS_BLK Processing object type TABLE_EXPORT/TABLE/TABLE Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS Processing object type TABLE_EXPORT/TABLE/END_PLUGTS_BLK Master table "SYSTEM"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded ******************************************************************************
  • 13. Dump file set for SYSTEM.SYS_EXPORT_TABLE_01 is: /u01/app11g/backup/part_2010.dmp ****************************************************************************** Datafiles required for transportable tablespace TRANSPORT_TEST_TS_1: /u01/app11g/oracle/product/11.2.0/db_1/dbs/tt_ts1.dbf Datafiles required for transportable tablespace USERS: /u01/app/oracle/oradata/EDUCATE/users01.dbf Job "SYSTEM"."SYS_EXPORT_TABLE_01" successfully completed at 13:36:23 Şimdi geri dönme yani backuptan geri alma testi yapacağız bunun için ilgili tabloyu ve onun ait olduğu tablespace leri drop ediyoruz. [oracle@rac1 ~]$ sqlplus '/as sysdba' SQL> DROP TABLE test.transport_test_tab; SQL> DROP TABLESPACE transport_test_ts_1 INCLUDING CONTENTS; SQL> DROP TABLESPACE transport_test_ts_2 INCLUDING CONTENTS AND DATAFILES; Dikkat edersek 1.tablespace te sadece content yani syntax bilgisini drop ettik,tablespace in datafile’ı halen mevcuttur. Şimdi artık aldığımız export backup ındaki bilgiyi import edebiliriz. [oracle@rac1 ~]$ impdp system/oracle partition_options=departition dumpfile=part_2010.dmp transport_datafiles='tt_ts1.dbf' İşlemin output bilgiside aşağıdaki gibi olacaktır, $ impdp system/password partition_options=departition dumpfile=part_2007.dmp transport_datafiles='/u01/app/oracle/oradata/DB11G/tt_ts_1' Import: Release 11.2.0.1.0 - Production on Wed Sep 8 13:42:38 2010 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 Production With the Partitioning, OLAP, Data Mining and Real Application Testing options Master table "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01" successfully loaded/unloaded Starting "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01": system/******** partition_options=departition dumpfile=part_2010.dmp transport_datafiles=tt_ts1.dbf Processing object type TABLE_EXPORT/TABLE/PLUGTS_BLK Processing object type TABLE_EXPORT/TABLE/TABLE Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX ORA-39083: Object type INDEX failed to create with error: ORA-00942: table or view does not exist Failing sql is:
  • 14. CREATE UNIQUE INDEX "TEST"."TRANSPORT_TEST_PK" ON "TEST"."TRANSPORT_TEST_TAB" ("ID") PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE(SEG_FILE 4 SEG_BLOCK 635 OBJNO_REUSE 85559 INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "USERS" PARALLEL 1 Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT ORA-39083: Object type CONSTRAINT failed to create with error: ORA-00942: table or view does not exist Failing sql is: ALTER TABLE "TEST"."TRANSPORT_TEST_TAB" ADD CONSTRAINT "TRANSPORT_TEST_PK" PRIMARY KEY ("ID") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE(SEG_FILE 4 SEG_BLOCK 635 OBJNO_REUSE 85559 INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "USERS" ENABLE Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS ORA-39112: Dependent object type INDEX_STATISTICS skipped, base object type INDEX:"TEST"."TRANSPORT_TEST_PK" creation failed Processing object type TABLE_EXPORT/TABLE/END_PLUGTS_BLK Job "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01" completed with 3 error(s) at 13:42:50 Tablo segmenti tablo ismi ve partition isimlerinin kombinasyonu ile isimlendirilmiştir, bu yüzden buna bağlı olan objeler hata vermiştir çünkü yanlış tablo ismini aramaktadırlar.O yüzden verilen hataları görmezden geliyoruz. Şimdi artık oluşan yeni segmenti aşağıda görebiliriz. [oracle@rac1 ~]$ sqlplus '/as sysdba' SQL> CONN test/test SQL> EXEC DBMS_STATS.gather_schema_stats(USER); SQL> COLUMN table_name FORMAT A30 SQL> COLUMN tablespace_name FORMAT A20 SQL> set linesize 1000 SQL> SELECT table_name, tablespace_name, partitioned, num_rows FROM user_tables Where tablespace_name like '%TRANSPORT_TEST_TS_1%'; TABLE_NAME TABLESPACE_NAME PAR NUM_ROWS ------------------------------ -------------------- --- ---------TRANSPORT_TES_PART_2007 TRANSPORT_TEST_TS_1 NO 2 1 row selected. NORMAL EXPORT/IMPORT [oracle@rac1 ~]$ exp system/oracle owner=DOGANHAYAT file=/temp_data1/DOGANHAYATExport.dmp log=/temp_data1/DOGANHAYATExport.log [oracle@rac1 ~]$ imp system/oracle fromuser=DOGANHAYAT touser=DOGANHAYAT file=/temp_data1/DOGANHAYATExport.dmp log=/temp_data1/DOGANHAYATExport.log buffer=10000000 commit=y &
  • 15. [oracle@rac1 ~]$ buffer=10000000 commit=y full=y statistics=none & SQL> @/u01/app/oracle/product/10.2.0/db_1/rdbms/admin/utlrp.sql; SQL> @?/rdbms/admin/utlrp.sql;