Hotbackup de una base de datos Oracle

1. ¿Qué es un hotbackup de una base de datos Oracle?

El hotbackup o backup en caliente se suele realizar cuando por requisitos de disponibilidad de la base de datos 24 h al día es imposible pararla para realizar un backup. El procedimiento de backup en caliente es parecido al backup en frio. Para realizar este tipo de backup necesitamos conocer dos comandos sencillos begin backup y end backup.

Por su puesto para poder hacer este tipo de backup, la base de datos debe de estar configurada en modo archivelog.

Para realizar cualquier tipo de backup hay que tener claro cuales son los objetos sobre los que queremos realizar esta copia de seguridad:

  • Realizar copia de seguridad de los datafiles
  • Realizar copia de seguridad de los archivelog
  • Tener una copia del init.ora
  • Tener backup del/los controlfile/s

2. Cómo realizar backup sobre los datafiles

Primero tenemos que ver que datafiles tenemos en nuestra base de datos, para ellos podemos realizar la siguiente consulta a la tabla dba_data_files.

select tablespace_name,file_name from dba_data_files order by tablespace_name;

Para cada uno de los datafiles asociados a un tablespace hacemos lo siguiente:

Alter tablespace <nb_tablespace> begin backup;
--copiamos todos los datafiles con la utilidad del SO a otro sitio cada uno de los datafiles asociados.
!cp dest1/datafile1 dest2/datafile2
Alter tablespace end backup;
Alter system switch logfile;

Como observamos bloqueamos el tablespace, copiamos todos los datafiles al lugar donde queramos realizar el backup y por último desbloqueamos el tablespace y forzamos los redo.

3. Backup de los archivelogs

Esto es tan sencillo como copiar todos los ficheros archivelog a otra ubicación con la utilidad del sistema operativo (copy).

Una vez que se ha realizado el respaldo ( backup ) de estos ficheros pueden ser borrados de la ubicación original en caso de que queramos librerar un poco de espacio, ya que contienen las ultimas transacciones y si en algún caso queremos realizar una recuperación en el tiempo tenemos todos estos archivos guardados para cuando la recuperación los pida.

4. Backup init.ora

Es recomendable tener una copia del init.ora en algún sitio (con realizar esta copia cada vez que cambie este archivo sería suficiente)

5. Backup controlfile

Es recomendable tener una copia de los ficheros de control de la base de datos. Este backup se puede realizar de la siguiente forma:

Alter database backup controlfile to destino nombredelfichero;

Si queremos tener un backup legible de estos ficheros para crear uno nuevo en caso de pérdida, la sentencia a ejecutar es la siguiente:

Alter database backup controlfile to trace as 'destino/fichero';

No olvidar las comillas en este último caso para escribir el destino y nombre de fichero

6. Generar un script de hotbackup

Antes hemos explicado brevemente los pasos a seguir para realizar un backup en caliente, pero como es obvio, estas cosas se suelen tener programadas para realizarse cada x tiempo o diariamente, por lo tanto lo mejor es tener un script que realice todos estos pasos.

En esta sección pondré un ejemplo de cómo generar automáticamente este script y sobre el cual sólo habrá que realizar unos cambios dependiendo del sistema operativo que se utilice o el destino del hotbackup.

El script es el siguiente:

set serveroutput on size 1000000
set echo off heading off feedback off lines 132
SPOOL /backup/database/hotbackup/unic/backupunic.sql
DECLARE
CURSOR c_tablespace IS
SELECT a.tablespace_name
FROM dba_tablespaces a
ORDER BY 1;
CURSOR c_datafiles (in_ts_name IN VARCHAR2) IS
SELECT a.file_name
FROM dba_data_files a
WHERE a.tablespace_name = in_ts_name
ORDER BY 1;
v_sid VARCHAR2(100) := 'unic';
v_backup_com VARCHAR2(100) := '!cp ';
v_remove_com VARCHAR2(100) := '!rm';
v_dest_loc VARCHAR2(100) := '/backup/database/hotbackup/unic/';
v_dest_arc VARCHAR2(100) := '/backup/database/archivelog/unic/';
v_init_ora VARCHAR2(100) := '/opt/oracle/admin/unic/pfile/initunic.ora';
BEGIN
DBMS_Output.Disable;
DBMS_Output.Enable(10000000);
--DBMS_Output.Put_line('sqlplus /nolog');
DBMS_Output.Put_line('connect /as sysdba');
DBMS_Output.Put_line(' ');
DBMS_Output.Put_line('-- ----------------------');
DBMS_Output.Put_line('-- Backup de todos los tablespaces');
DBMS_Output.Put_line('-- ----------------------');
FOR cur_ts IN c_tablespace LOOP
DBMS_Output.Put_line(' ');
DBMS_Output.Put_line('ALTER TABLESPACE ' || cur_ts.tablespace_name || ' BEGIN BACKUP;');
FOR cur_df IN c_datafiles (in_ts_name => cur_ts.tablespace_name) LOOP
DBMS_Output.Put_line(v_backup_com || ' ' || cur_df.file_name || ' '|| v_dest_loc);
END LOOP;
DBMS_Output.Put_line('ALTER TABLESPACE ' || cur_ts.tablespace_name || ' END BACKUP;');
DBMS_Output.Put_line('ALTER SYSTEM SWITCH LOGFILE;');
END LOOP;
DBMS_Output.Put_line(' ');
DBMS_Output.Put_line('-- -----------------------------');
DBMS_Output.Put_line('-- Backup todos los archived redo logs');
DBMS_Output.Put_line('-- -----------------------------'); DBMS_Output.Put_line(v_backup_com || ' ' || '/s/oracle/archive/unic/*' || ' ' || v_dest_arc );
DBMS_Output.Put_line(' ');
DBMS_Output.Put_line('-- ----------------------');
DBMS_Output.Put_line('-- Backup los controlfile');
DBMS_Output.Put_line('-- ----------------------');
DBMS_Output.Put_line('ALTER DATABASE BACKUP CONTROLFILE TO ''' || v_dest_loc || v_sid || 'Controlfile.backup'';');
DBMS_Output.Put_line(' ');
DBMS_Output.Put_line(' ');
DBMS_Output.Put_line('-- ----------------------');
DBMS_Output.Put_line('-- backup de archivo init.ora');
DBMS_Output.Put_line('-- ----------------------');
DBMS_Output.Put_line(v_backup_com || ' ' || v_init_ora || ' ' || v_dest_loc );
DBMS_Output.Put_line(' ');
DBMS_Output.Put_line('EXIT');
END;
/

EXPLICACIONES SOBRE EL SCRIPT Y MODIFICACIONES A REALIZAR PARA ADAPTARLO A CADA BACKUP

linea 3: Poner una ruta para generar el fichero que exista

linea 15: v_backup_com es el comando que utiliza el sistema operativo para copiar, en linux cp con el signo ! (puesto que estamos dentro de SQL>), si fuese windows tendiramos que poner $ocopy

linea 16: v_remove_com es el comando que utiliza el sistema operativo para borrar, en linux rm con el signo ! ( puesto que estamos dentro de SQL>) si fueste windows tendríamos que poner $del

linea 17: Poner una ruta que exista para la variable v_dest_loc ( donde se van a copiar los datafiles )

linea 18: Poner una ruta que exista para la variable v_dest_arc ( donde se van a copiar los archivelog)

El script generado en la dirección del spool contendrá todas las sentencias necesarias para hacer un hotbackup del sistema, solo habrá que ejecutar el script obtenido en el spool y ya tendremos realizado el hotbackup sin olvidarnos de ningun datafile ni archivo importante.

xosotin chelseathông tin chuyển nhượngcâu lạc bộ bóng đá arsenalbóng đá atalantabundesligacầu thủ haalandUEFAevertonxosofutebol ao vivofutemaxmulticanaisonbethttps://bsport.fithttps://onbet88.ooohttps://i9bet.bizhttps://hi88.ooohttps://okvip.athttps://f8bet.athttps://fb88.cashhttps://vn88.cashhttps://shbet.atbóng đá world cupbóng đá inter milantin juventusbenzemala ligaclb leicester cityMUman citymessi lionelsalahnapolineymarpsgronaldoserie atottenhamvalenciaAS ROMALeverkusenac milanmbappenapolinewcastleaston villaliverpoolfa cupreal madridpremier leagueAjaxbao bong da247EPLbarcelonabournemouthaff cupasean footballbên lề sân cỏbáo bóng đá mớibóng đá cúp thế giớitin bóng đá ViệtUEFAbáo bóng đá việt namHuyền thoại bóng đágiải ngoại hạng anhSeagametap chi bong da the gioitin bong da lutrận đấu hôm nayviệt nam bóng đátin nong bong daBóng đá nữthể thao 7m24h bóng đábóng đá hôm naythe thao ngoai hang anhtin nhanh bóng đáphòng thay đồ bóng đábóng đá phủikèo nhà cái onbetbóng đá lu 2thông tin phòng thay đồthe thao vuaapp đánh lô đềdudoanxosoxổ số giải đặc biệthôm nay xổ sốkèo đẹp hôm nayketquaxosokq xskqxsmnsoi cầu ba miềnsoi cau thong kesxkt hôm naythế giới xổ sốxổ số 24hxo.soxoso3mienxo so ba mienxoso dac bietxosodientoanxổ số dự đoánvé số chiều xổxoso ket quaxosokienthietxoso kq hôm nayxoso ktxổ số megaxổ số mới nhất hôm nayxoso truc tiepxoso ViệtSX3MIENxs dự đoánxs mien bac hom nayxs miên namxsmientrungxsmn thu 7con số may mắn hôm nayKQXS 3 miền Bắc Trung Nam Nhanhdự đoán xổ số 3 miềndò vé sốdu doan xo so hom nayket qua xo xoket qua xo so.vntrúng thưởng xo sokq xoso trực tiếpket qua xskqxs 247số miền nams0x0 mienbacxosobamien hôm naysố đẹp hôm naysố đẹp trực tuyếnnuôi số đẹpxo so hom quaxoso ketquaxstruc tiep hom nayxổ số kiến thiết trực tiếpxổ số kq hôm nayso xo kq trực tuyenkết quả xổ số miền bắc trực tiếpxo so miền namxổ số miền nam trực tiếptrực tiếp xổ số hôm nayket wa xsKQ XOSOxoso onlinexo so truc tiep hom nayxsttso mien bac trong ngàyKQXS3Msố so mien bacdu doan xo so onlinedu doan cau loxổ số kenokqxs vnKQXOSOKQXS hôm naytrực tiếp kết quả xổ số ba miềncap lo dep nhat hom naysoi cầu chuẩn hôm nayso ket qua xo soXem kết quả xổ số nhanh nhấtSX3MIENXSMB chủ nhậtKQXSMNkết quả mở giải trực tuyếnGiờ vàng chốt số OnlineĐánh Đề Con Gìdò số miền namdò vé số hôm nayso mo so debach thủ lô đẹp nhất hôm naycầu đề hôm naykết quả xổ số kiến thiết toàn quốccau dep 88xsmb rong bach kimket qua xs 2023dự đoán xổ số hàng ngàyBạch thủ đề miền BắcSoi Cầu MB thần tàisoi cau vip 247soi cầu tốtsoi cầu miễn phísoi cau mb vipxsmb hom nayxs vietlottxsmn hôm naycầu lô đẹpthống kê lô kép xổ số miền Bắcquay thử xsmnxổ số thần tàiQuay thử XSMTxổ số chiều nayxo so mien nam hom nayweb đánh lô đề trực tuyến uy tínKQXS hôm nayxsmb ngày hôm nayXSMT chủ nhậtxổ số Power 6/55KQXS A trúng roycao thủ chốt sốbảng xổ số đặc biệtsoi cầu 247 vipsoi cầu wap 666Soi cầu miễn phí 888 VIPSoi Cau Chuan MBđộc thủ desố miền bắcthần tài cho sốKết quả xổ số thần tàiXem trực tiếp xổ sốXIN SỐ THẦN TÀI THỔ ĐỊACầu lô số đẹplô đẹp vip 24hsoi cầu miễn phí 888xổ số kiến thiết chiều nayXSMN thứ 7 hàng tuầnKết quả Xổ số Hồ Chí Minhnhà cái xổ số Việt NamXổ Số Đại PhátXổ số mới nhất Hôm Nayso xo mb hom nayxxmb88quay thu mbXo so Minh ChinhXS Minh Ngọc trực tiếp hôm nayXSMN 88XSTDxs than taixổ số UY TIN NHẤTxs vietlott 88SOI CẦU SIÊU CHUẨNSoiCauVietlô đẹp hôm nay vipket qua so xo hom naykqxsmb 30 ngàydự đoán xổ số 3 miềnSoi cầu 3 càng chuẩn xácbạch thủ lônuoi lo chuanbắt lô chuẩn theo ngàykq xo-solô 3 càngnuôi lô đề siêu vipcầu Lô Xiên XSMBđề về bao nhiêuSoi cầu x3xổ số kiến thiết ngày hôm nayquay thử xsmttruc tiep kết quả sxmntrực tiếp miền bắckết quả xổ số chấm vnbảng xs đặc biệt năm 2023soi cau xsmbxổ số hà nội hôm naysxmtxsmt hôm nayxs truc tiep mbketqua xo so onlinekqxs onlinexo số hôm nayXS3MTin xs hôm nayxsmn thu2XSMN hom nayxổ số miền bắc trực tiếp hôm naySO XOxsmbsxmn hôm nay188betlink188 xo sosoi cầu vip 88lô tô việtsoi lô việtXS247xs ba miềnchốt lô đẹp nhất hôm naychốt số xsmbCHƠI LÔ TÔsoi cau mn hom naychốt lô chuẩndu doan sxmtdự đoán xổ số onlinerồng bạch kim chốt 3 càng miễn phí hôm naythống kê lô gan miền bắcdàn đề lôCầu Kèo Đặc Biệtchốt cầu may mắnkết quả xổ số miền bắc hômSoi cầu vàng 777thẻ bài onlinedu doan mn 888soi cầu miền nam vipsoi cầu mt vipdàn de hôm nay7 cao thủ chốt sốsoi cau mien phi 7777 cao thủ chốt số nức tiếng3 càng miền bắcrồng bạch kim 777dàn de bất bạion newsddxsmn188betw88w88789bettf88sin88suvipsunwintf88five8812betsv88vn88Top 10 nhà cái uy tínsky88iwinlucky88nhacaisin88oxbetm88vn88w88789betiwinf8betrio66rio66lucky88oxbetvn88188bet789betMay-88five88one88sin88bk88xbetoxbetMU88188BETSV88RIO66ONBET88188betM88M88SV88Jun-68Jun-88one88iwinv9betw388OXBETw388w388onbetonbetonbetonbet88onbet88onbet88onbet88onbetonbetonbetonbetqh88mu88Nhà cái uy tínpog79vp777vp777vipbetvipbetuk88uk88typhu88typhu88tk88tk88sm66sm66me88me888live8live8livesm66me88win798livesm66me88win79pog79pog79vp777vp777uk88uk88tk88tk88luck8luck8kingbet86kingbet86k188k188hr99hr99123b8xbetvnvipbetsv66zbettaisunwin-vntyphu88vn138vwinvwinvi68ee881xbetrio66zbetvn138i9betvipfi88clubcf68onbet88ee88typhu88onbetonbetkhuyenmai12bet-moblie12betmoblietaimienphi247vi68clupcf68clupvipbeti9betqh88onb123onbefsoi cầunổ hũbắn cáđá gàđá gàgame bàicasinosoi cầuxóc đĩagame bàigiải mã giấc mơbầu cuaslot gamecasinonổ hủdàn đềBắn cácasinodàn đềnổ hũtài xỉuslot gamecasinobắn cáđá gàgame bàithể thaogame bàisoi cầukqsssoi cầucờ tướngbắn cágame bàixóc đĩaAG百家乐AG百家乐AG真人AG真人爱游戏华体会华体会im体育kok体育开云体育开云体育开云体育乐鱼体育乐鱼体育欧宝体育ob体育亚博体育亚博体育亚博体育亚博体育亚博体育亚博体育开云体育开云体育棋牌棋牌沙巴体育买球平台新葡京娱乐开云体育mu88qh88

About: admin