中小型数据库备份恢复方案
欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 4、创建RMAN备份shell脚本 [python] oracle@BKDB01p:/u02/database/common/rman_scripts more db_bak_rman_catalog.sh ##=========================================================== ## File nam
欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入
4、创建RMAN备份shell脚本
[python]
oracle@BKDB01p:/u02/database/common/rman_scripts> more db_bak_rman_catalog.sh
##===========================================================
## File name: db_bak_rman_catalog.sh
## Usage: db_bak_rman_catalog.sh
## Desc:
## The script uses to backup database with level 0.
##============================================================
#!/bin/bash
# User specific environment and startup programs
if [ -f ~/.bash_profile ];
then
. ~/.bash_profile
fi
# --------------------------
# Check SID
# --------------------------
if [ -z "${1}" ];then
echo "Usage: "
echo " `basename $0` ORACLE_SID"
exit 1
fi
# -------------------------------
# Set environment here
# -------------------------------
ORACLE_SID=${1}; export ORACLE_SID
TIMESTAMP=`date +%Y%m%d%H%M`; export TIMESTAMP
LOG_DIR=/u02/database/${ORACLE_SID}/backup export LOG_DIR
RMAN_LOG=${LOG_DIR}/${ORACLE_SID}_bak_${TIMESTAMP}.log
SSH_LOG=${LOG_DIR}/${ORACLE_SID}_bak_full_${TIMESTAMP}.log
MAIL_DIR=/users/oracle/sendEmail-v1.56
MAIL_FM=oracle@BKDB01p
RETENTION=5
echo "----------------------------------------------------------------" 》${SSH_LOG}
echo "Step 1. Start rman to backup at `date`." 》${SSH_LOG}
echo "----------------------------------------------------------------" 》${SSH_LOG}
$ORACLE_HOME/bin/rman log=${RMAN_LOG} 《EOF
connect target sys/xxx@${ORACLE_SID}
connect catalog rman_user/xxx@CATADB
resync catalog;
run {execute global script global_inc0;}
exit;
EOF
RV=$?
cat ${RMAN_LOG}》${SSH_LOG}
echo "" 》${SSH_LOG}
echo "=====>MSG1: RMAN backup end at `date`." 》${SSH_LOG}
if [ $RV -ne "0" ]; then
echo "" 》${SSH_LOG}
echo "=====>MSG2: RMAN backup error at `date`." 》${SSH_LOG}
$MAIL_DIR/sendEmail -f $MAIL_FM -u "Failed RMAN backup for $ORACLE_SID on `hostname`." -t dba@12306.com -o message-file=${SSH_LOG}
exit
else
echo "" 》${SSH_LOG}
echo "=====>MSG2: No error found during RMAN backup peroid at `date`" 》${SSH_LOG}
rm -rf ${RMAN_LOG} 2>/dev/null
fi
echo "-------------------------------------------------------------------------" 》${SSH_LOG}
echo "Step 2. Start ftp backupset to backup server at `date`." 》${SSH_LOG}
echo "-------------------------------------------------------------------------" 》${SSH_LOG}
SRC_DB_BAK_DIR=/u02/database/${ORACLE_SID}/flash_recovery_area/${ORACLE_SID}
SRC_ADD=10.1.2.101
TARG_DB_BAK_DIR=/u02/database/${ORACLE_SID}/flash_recovery_area
RSYN_LOG=${LOG_DIR}/rsync_${TIMESTAMP}.log
# rsync is used to ftp backup set to bak server.
rsync -avzSH --progress --delete-after oracle@${SRC_ADD}:${SRC_DB_BAK_DIR} ${TARG_DB_BAK_DIR} >${RSYN_LOG} 2>&1
RV=$?
cat ${RSYN_LOG}》${SSH_LOG}
if [ $RV -ne "0" ]; then
echo "" 》${SSH_LOG}
echo "=====>MSG3: FTP backupset error at `date`." 》${SSH_LOG}
MAIL_SUB="Failed archive log sync for $ORACLE_SID on `hostname` at `date`."
$MAIL_DIR/sendEmail -f $MAIL_FM -u $MAIL_SUB -t dba@12306.com -o message-file=${SSH_LOG}
exit
else
echo "" 》${SSH_LOG}
echo -e "=====>MSG3: No error found during FTP peroid." 》${SSH_LOG}
rm -rf $FTP_LOG 2>/dev/null
fi
echo "-------------------------------------------------------------------------" 》${SSH_LOG}
echo "Step 3. RMAN backup and ftp backupset finished at `date`." 》${SSH_LOG}
echo "-------------------------------------------------------------------------" 》${SSH_LOG}
MAIL_SUB="Sucessful completed for ${ORACLE_SID} RMAN backup and ftp backupset at `date`."
$MAIL_DIR/sendEmail -f $MAIL_FM -u $MAIL_SUB -t dba@12306.com -o message-file=${SSH_LOG}
# ------------------------------------------------
# Removing files older than $RETENTION parameter
# ------------------------------------------------
find ${LOG_DIR} -name "*.*" -mtime +$RETENTION -exec rm {} \;
exit
5、自动FTP archivelog脚本
[python]
oracle@BKDB01p:/u02/database/common/rman_scripts> more autoftp_arch.sh
#!/bin/bash
ORACLE_SID=${1}; export ORACLE_SID
TIMESTAMP=`date +%Y%m%d%H%M`; export TIMESTAMP
LOG_DIR=/u02/database/${ORACLE_SID}/backup
#Define FTP variable
SRC_DB_BAK_DIR=/u02/database/${ORACLE_SID}/archive
SRC_ADD=10.1.2.101
TARG_DB_BAK_DIR=/u02/database/${ORACLE_SID}
RSYN_LOG=${LOG_DIR}/rsync_arc_${TIMESTAMP}.log
RSYN_ERR_LOG=${LOG_DIR}/rsync_arc_${TIMESTAMP}_err.log
rsync -avzSH --progress --delete-after oracle@${SRC_ADD}:${SRC_DB_BAK_DIR} ${TARG_DB_BAK_DIR} >${RSYN_LOG} 2>${RSYN_ERR_LOG}
RV=$?
if [ ! -s ${RSYN_ERR_LOG} ];then
rm -rf ${RSYN_ERR_LOG} 2>/dev/null
else
mail -s "Failed FTP archive log for $ORACLE_SID on `hostname`" dba@12306.com fi
exit
6、部署备份脚本到crontab
如果你的数据库比较少,则直接将上面的备份脚本与自动FTP archivelog脚本部署到crontab.
如果你的数据库比较多,建议将上面的脚本封装到另外的一个文件,然后部署到crontab.
如下面的full_bak_by_rman.sh实际上是包含了多个db_bak_rman_catalog.sh ,后面的多个full开头的使用类是的原理。
#Rman backup and restore database
0 1 * * 1-6 /u02/database/common/rman_scripts/full_bak_by_rman.sh
0 3 * * 1-6 /u02/database/common/rman_scripts/full_resotre_by_rman.sh #这个是用来还原的脚本
#Auto ftp archive log from prod to bak server
*/16 7-20 * * 1-6 /u02/database/common/rman_scripts/full_autoftp_arch.sh
[1] [2]

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제









Oracle 데이터베이스 로그의 보존 기간은 다음을 포함한 로그 유형 및 구성에 따라 다릅니다. 재실행 로그: "LOG_ARCHIVE_DEST" 매개변수로 구성된 최대 크기에 의해 결정됩니다. 보관된 리두 로그: "DB_RECOVERY_FILE_DEST_SIZE" 매개변수로 구성된 최대 크기에 따라 결정됩니다. 온라인 리두 로그: 보관되지 않고 데이터베이스를 다시 시작하면 손실되며 보존 기간은 인스턴스 실행 시간과 일치합니다. 감사 로그: "AUDIT_TRAIL" 매개변수로 구성되며 기본적으로 30일 동안 보관됩니다.

PHP에서 MySQL 데이터베이스를 백업하고 복원하는 작업은 다음 단계에 따라 수행할 수 있습니다. 데이터베이스 백업: mysqldump 명령을 사용하여 데이터베이스를 SQL 파일로 덤프합니다. 데이터베이스 복원: mysql 명령을 사용하여 SQL 파일에서 데이터베이스를 복원합니다.

Oracle에 필요한 메모리 양은 데이터베이스 크기, 활동 수준 및 필요한 성능 수준(데이터 버퍼 저장, 인덱스 버퍼, SQL 문 실행 및 데이터 사전 캐시 관리에 필요)에 따라 다릅니다. 정확한 양은 데이터베이스 크기, 활동 수준 및 필요한 성능 수준에 따라 달라집니다. 모범 사례에는 적절한 SGA 크기 설정, SGA 구성 요소 크기 조정, AMM 사용 및 메모리 사용량 모니터링이 포함됩니다.

Oracle 데이터베이스 서버 하드웨어 구성 요구 사항: 프로세서: 기본 주파수가 2.5GHz 이상인 멀티 코어, 대규모 데이터베이스의 경우 32개 이상의 코어가 권장됩니다. 메모리: 소규모 데이터베이스의 경우 최소 8GB, 중간 크기의 경우 16~64GB, 대규모 데이터베이스 또는 과도한 작업 부하의 경우 최대 512GB 이상. 스토리지: SSD 또는 NVMe 디스크, 중복성 및 성능을 위한 RAID 어레이. 네트워크: 고속 네트워크(10GbE 이상), 전용 네트워크 카드, 지연 시간이 짧은 네트워크. 기타: 안정적인 전원 공급 장치, 이중 구성 요소, 호환 가능한 운영 체제 및 소프트웨어, 열 방출 및 냉각 시스템.

Oracle 데이터베이스에 필요한 메모리 양은 데이터베이스 크기, 작업 부하 유형 및 동시 사용자 수에 따라 다릅니다. 일반 권장 사항: 소형 데이터베이스: 16~32GB, 중형 데이터베이스: 32~64GB, 대형 데이터베이스: 64GB 이상. 고려해야 할 다른 요소로는 데이터베이스 버전, 메모리 최적화 옵션, 가상화 및 모범 사례(메모리 사용량 모니터링, 할당 조정)가 있습니다.

Apple의 최신 iOS18, iPadOS18 및 macOS Sequoia 시스템 릴리스에는 사진 애플리케이션에 중요한 기능이 추가되었습니다. 이 기능은 사용자가 다양한 이유로 손실되거나 손상된 사진과 비디오를 쉽게 복구할 수 있도록 설계되었습니다. 새로운 기능에는 사진 앱의 도구 섹션에 '복구됨'이라는 앨범이 도입되었습니다. 이 앨범은 사용자가 기기에 사진 라이브러리에 포함되지 않은 사진이나 비디오를 가지고 있을 때 자동으로 나타납니다. "복구된" 앨범의 출현은 데이터베이스 손상으로 인해 손실된 사진과 비디오, 사진 라이브러리에 올바르게 저장되지 않은 카메라 응용 프로그램 또는 사진 라이브러리를 관리하는 타사 응용 프로그램에 대한 솔루션을 제공합니다. 사용자는 몇 가지 간단한 단계만 거치면 됩니다.

MySQLi를 사용하여 PHP에서 데이터베이스 연결을 설정하는 방법: MySQLi 확장 포함(require_once) 연결 함수 생성(functionconnect_to_db) 연결 함수 호출($conn=connect_to_db()) 쿼리 실행($result=$conn->query()) 닫기 연결( $conn->close())

PHP에서 데이터베이스 연결 오류를 처리하려면 다음 단계를 사용할 수 있습니다. mysqli_connect_errno()를 사용하여 오류 코드를 얻습니다. 오류 메시지를 얻으려면 mysqli_connect_error()를 사용하십시오. 이러한 오류 메시지를 캡처하고 기록하면 데이터베이스 연결 문제를 쉽게 식별하고 해결할 수 있어 애플리케이션이 원활하게 실행될 수 있습니다.
