DB2? Advanced Copy Services Ö§³Ö»ñÈ¡¿ìÕÕ£¬½«ÕâЩ¿ìÕÕÓÃÓÚ
DB2 for Linux?, UNIX? and Windows? Êý¾Ý¿âÖеı¸·Ý¡£¿Í»§¿Éͨ¹ýËûÃǵĴ洢Ӳ¼þ¹©Ó¦ÉÌʵÏֵĿâÀ´Ê¹ÓÃ
DB2 ACS API£¬Ò²¿ÉÒÔ×ÔÐÐʵÏÖÕâ¸ö API¡£´ËÍ⣬¿Í»§ÐèÒª»¨´óÁ¿¾«Á¦²ÅÄÜʵÏÖ DB2 ACS µÄ
C-API¡£
¼ò½é
DB2 10.5 Ϊ DB2 Advanced Copy Services
(DB2 ACS ÒýÈëÁËÒ»¸ö³ÆÎª½Å±¾»¯½Ó¿Ú (scripted interface) µÄй¦ÄÜ¡£¸Ã¹¦ÄÜʹµÃ¿Í»§Äܹ»ÊµÏÖ
shell ½Å±¾¶ø²»ÊÇ C ¿â£¬ÕâЩ½Å±¾¿ÉʹÓô洢¹©Ó¦ÉÌÌṩµÄ¹¤¾ßÔËÐпìÕÕ²Ù×÷¡£Äú¿ÉÒÔÔÚ´æ´¢Ó²¼þÖжÀÁ¢Ê¹Óýű¾»¯½Ó¿Ú¡£´ËÍ⣬DB2
Ö§³ÖÐÂÉÏÊеĴ洢Ӳ¼þ¡£
¸Ã¹¦ÄÜÖ§³Ö DB2 µÄËùÓÐÈýÖּܹ¹£ºÆóÒµ·þÎñÆ÷¡¢Ê¹ÓÃÊý¾Ý¿â·ÖÇø¹¦ÄÜ (DPF)
µÄ¶à·ÖÇø (multipartitioned) Êý¾Ý¿â£¬ÒÔ¼°Ê¹Óà pureScale µÄÊý¾Ý¿â¡£ËùÓÐ UNIX
ºÍ Linux ƽ̨£¨Ö»Òª DB2 ͨ¹ýÁËËüÃǵÄÈÏÖ¤£©¶¼Ö§³ÖËü¡£
±¾ÎÄÕÂϵÁн«½éÉܴ˹¦ÄÜ£¬ºóÐøÎÄÕ»¹»áÌá¹©Ò»Ð©ÕæÊµÊ¾Àý¡£±¾ÎĽ«Ïêϸ½éÉÜ×é³É¸Ã¹¦Äܵĸ÷¸ö²¿·Ö¡£Ëù¸ø³öµÄ³£¹æÉèÖûùÓÚ
DB2 ËùÌṩµÄÑùÀý¿Í»§½Å±¾µÄʾÀý¡£
ͼ 1 ¸ø³öÁË DB2 ACS еĽű¾»¯½Ó¿ÚµÄ×ÜÌå½á¹¹£º

ͼ 1. DB2 ACS µÄнű¾»¯½Ó¿ÚµÄ½á¹¹
Äú¿É¿´µ½´Ë¹¦ÄܵÄÈý¸öÖØÒª²¿·Ö£ºDB2 ·þÎñÆ÷£¨°üÀ¨ DB2 ACS µÄ½Å±¾»¯½Ó¿Ú£©¡¢ÐÒéÎļþ´æ´¢¿âºÍ¿Í»§½Å±¾¡£DB2
·þÎñÆ÷ʹÓñ¸·ÝÃüÁî´¥·¢¿ìÕÕ²¢µ÷Óÿͻ§½Å±¾¡£ÐÒéÎļþ´æ´¢¿â»ñÈ¡ÐÒéÎļþ£¬DB2 ÔÚÕâЩÎļþÖÐдÈëÒ»Ð©ÖØÒªÐÅÏ¢£¬¿Í»§½Å±¾¿ÉʹÓÃÕâЩÐÅÏ¢³É¹¦ÔËÐпìÕÕ£¬ÓÈÆäÊÇÔÚ±¸·ÝÆÚ¼ä±ØÐë¸´ÖÆµÄÊý¾Ý¿âÃû³ÆºÍ·¾¶¡£±¾ÎĽ«½øÒ»²½·ÖÎöËùÓÐÕâЩ×é¼þ£¬½éÉÜʵÀý
db2jk1 ÖеÄÊý¾Ý¿â JK1 µÄʾÀý¡£
ÐÒéÎļþºÍÐÒéÎļþ´æ´¢¿â
ÐÒéÎļþ´æ´¢¿â°üº¬²Ù×÷ϵͳÖÐÒ»¸öÖ´ÐпìÕÕµÄĿ¼¡£Ëü¿ÉÒÔÊÇÈκÎÌṩÁËÒÔÏÂÌØÈ¨µÄĿ¼£º
1.¸ÃĿ¼±ØÐëÔÚÆô¶¯¸ÃÃüÁî֮ǰ¾Í´æÔÚ¡£
2.ÓµÓÐÊý¾Ý¿âµÄʵÀýµÄËùÓÐÕß±ØÐëÄܹ»ÔÚ´Ë´æ´¢¿âÖÐÖ´ÐжÁÈ¡ºÍдÈë²Ù×÷¡£
3.±ØÐëÓÐ×ã¹»µÄ¿Õ¼äÀ´´æ´¢²Ù×÷ÆÚ¼ä±àдµÄÐÒéÎļþ¡£
¿ÉʹÓÃÒÔÏÂÃüÁîÔÚ DB2 ÖÐÔËÐÐÒ»¸ö¿ìÕÕ±¸·Ý£¬ÒÔ±ãʹÓýű¾»¯½Ó¿Ú£º
BACKUP DATBASE JK1 USE SNAPSHOT SCRIPT '$HOME/sqllib/samples/BARVendor/libacssc.sh' OPTIONS '/repository' |
CLP ºÍ ADMIN_CMD Öж¼¿ÉÔËÐдËÃüÁ
CALL SYSPROC.ADMIN_CMD("BACKUP DATBASE JK1 USE SNAPSHOT SCRIPT '$HOME/sqllib/samples/BARVendor/libacssc.sh' OPTIONS '/repository'") |
ÔÚ´ËÃüÁîÖУ¬$HOME/sqllib/samples/BARVendor/libacssc.sh Êǿͻ§½Å±¾µÄλÖúÍÃû³Æ£»ÕâÊÇ
DB2 ËùÌṩµÄÑùÀý¿Í»§½Å±¾¡£/repository ÊÇÐÒéÎļþ´æ´¢¿âµÄĿ¼¡£Çë×¢Ò⣬Äú±ØÐë¶Ô½Å±¾Ãû³ÆºÍ´æ´¢¿âʹÓþø¶Ô·¾¶¡£Èç¹ûδÌṩ´æ´¢¿â£¬Ôò»á²éÕÒ¿Í»§½Å±¾ËùÔÚµÄĿ¼£¬½«ËüÓÃ×÷ÐÒéÎļþ´æ´¢¿â¡£Èç¹ûÏ£ÍûΪ¿Í»§½Å±¾Ìṩ¸ü¶àµÄÑ¡Ï¿ÉÒÔʹÓÃ
OPTIONS ×Ӿ䣬ÒòΪµÚÒ»¸ö²ÎÊýʼÖÕ»á½âÎöΪÐÒéÎļþ´æ´¢¿â¡£
ÐÒéÎļþ¾ßÓÐÒÔÏÂÁ½¸öÓÃ;£º
Ìṩ DB2 »¹ÔËù±ØÐèµÄÊý¾Ý¿âÐÅÏ¢¡£Òò´Ë£¬±¸·ÝÕâЩÎļþÒ²ÊÇÒ»¸ö²»´íµÄÏë·¨¡£
Ìṩ±¸·Ý½ø¶ÈÐÅÏ¢£¬½«ËüÃÇÓÃÓÚµ÷²é·ÖÎöÓÃ;£¨ÀýÈ磬ÿ¸öº¯ÊýºÍÓÃÓÚµ÷Óøýű¾µÄÒÔ ¡°# cmd:¡± ¿ªÍ·µÄÃüÁîµÄ¿ªÊ¼ºÍ½áÊøÊ±¼ä´Á£©
DB2 Éú³ÉµÄÿ¸öÐÒéÎļþµÄÃû³Æ¾ßÓÐͼ 2 ÖÐËùʾµÄ½á¹¹£º

ͼ 2. DB2 Éú³ÉµÄÐÒéÎļþÃû³Æ
DB2 ºÍ¿Í»§½Å±¾¶¼½«ÐÅϢдÈëÐÒéÎļþ£¬µ«Ä¿Ç° DB2 δÆÀ¹À¹ý¿Í»§½Å±¾Ð´ÈëµÄÈκÎÐÅÏ¢¡£Èç¹ûÏ£ÍûÏòÐÒéÎļþдÈëÄú×Ô¼ºµÄÑ¡Ï×îºÃʹÓÃ
USER ×÷ΪÃüÁîǰ׺£¬ÒÔ±ÜÃâδÀ´ÓëРDB2 Ñ¡Ïî·¢Éú³åÍ»¡£DB2 ʹÓÃÃû³Æ-Öµ¶Ô×÷ΪѡÏËüÃÇÊÇÓÃ
= ·ûºÅ·Ö¸ôµÄ¡£
ÔÚÿ¸ö²Ù×÷ÆÚ¼ä£¬»á±àдһ¸öÐÂÐÒéÎļþ¡£ÎÞÂ۳ɹ¦»¹ÊÇʧ°Ü£¬±¸·Ý²Ù×÷µÄÐÒéÎļþ¶¼»á±£Áô¡£Ê§°Ü±¸·ÝµÄÐÒéÎļþ±ØÐë´Ó´æ´¢¿âÖÐÊÖ¶¯É¾³ý£¬ÒÔ±ÜÃâÔÚ»¹Ô²Ù×÷ÆÚ¼ä³öÏÖÎÊÌâ¡£ÆäËû²Ù×÷£¨±ÈÈçɾ³ý¡¢²éѯ»ò»¹Ô£©µÄÐÒéÎļþ½öÔÚʧ°Üʱ²Å±£Áô¡£ÄúÓ¦¸ÃÔÚÍê³Éµ÷²é·ÖÎöºóɾ³ýËüÃÇ¡£
ÐÒéÎļþ±»»®·ÖΪ·´Ó³¶Ô DB2 ACS API µÄº¯Êýµ÷ÓõIJ»Í¬²¿·Ö¡£Ã¿Ò»²¿·ÖÒÔÒ»¸öʱ¼ä´Á¿ªÊ¼ºÍ½áÊø£¬±íÃ÷ÿ´Îµ÷Óû¨·ÑÁ˶೤ʱ¼ä¡£´ËÍ⣬¸ÃÐÅÏ¢»¹»áÔÚ
DB2 ACS API Ôڸú¯Êýµ÷ÓÃÆÚ¼äÌṩµÄÿһ²¿·ÖÖÐÌṩ¡£ÒÔÏ´úÂëÏÔʾÁËÀ´×ÔÒ»¸ö±¸·Ý²Ù×÷µÄÐÒéÎļþµÄ
db2ACSBeginOperation µ÷Óãº
# ========================================================= # db2ACSBeginOperation(): BEGIN [Mon Apr 22 05:00:23 2013] OPERATION=SNAPSHOT # db2ACSBeginOperation(): END [Mon Apr 22 05:00:23 2013] # ========================================================= |
Äú¿ÉÒÔ¿´µ½º¯ÊýµÄÃû³Æ¡¢Á½¸öʱ¼ä´ÁºÍÖ¸¶¨µÄ²Ù×÷£¨ÔÚ±¾ÀýÖÐΪ snapshot£©¡£
¶ÔÓÚºóÐø²¿·Ö£¬½«Ê¹ÓÃĿ¼ /repository ×÷ΪÐÒéÎļþ´æ´¢¿â¡£
ËùÓвÙ×÷µÄÐÒéÎļþ¶¼ÒÔÒ»¸öͨÓÃµÄ db2ACSInitialize º¯Êý²¿·Ö¿ªÊ¼£¬ÀàËÆÓÚÇåµ¥ 1£º
Çåµ¥ 1. db2ACSInitialize º¯Êý
# ========================================================= # db2ACSInitialize(): BEGIN [Mon Apr 22 05:00:23 2013] EXTERNAL_SCRIPT=/home/db2jk1/sqllib/samples/BARVendor/libacssc.sh EXTERNAL_OPTIONS=/repository 2ndoption DB_NAME=JK1 INSTANCE=db2jk1 DBPARTNUM=0 SIGNATURE=SQL10050 # db2ACSInitialize(): END [Mon Apr 22 05:00:23 2013] # ========================================================= |
ÈçÄúËù¼û£¬Õâ¶Î´úÂëÖ¸¶¨ÁËÃüÁî·¢³öµÄÊý¾Ý¿âÃû³Æ¡¢ÊµÀýÃû³ÆºÍʵÀý°æ±¾£¨Ò²¾ÍÊÇ
SIGNATURE£©¡£Õâ¶Î´úÂëÕª×ÔÒ»¸ö snapshot ²Ù×÷¡£
Ïêϸ·ÖÎöÑùÀý¿Í»§½Å±¾
ÏÂÒ»½Ú½«Ïêϸ½éÉÜÔÚÿ¸ö²Ù×÷ÆÚ¼äÑùÀý¿Í»§½Å±¾Ö´ÐÐÁËÄÄЩ¶¯×÷ (action)¡£
ÿ´Îµ÷Óö¼ÀàËÆÓÚÒÔϵ÷Óãº
/home/db2jk1/sqllib/samples/BARVendor/libacssc.sh ¨Ca prepare ¨Cc /repository/db2acs.JK1.0.db2jk1.1366621223.cfg /repository 2ndoption |
±ê¼Ç ¨Ca ºó¸úÒªÔڸõ÷ÓÃÖÐÖ´Ðе͝×÷£»±ê¼Ç ¨Cc ºó¸úµ±Ç°Ê¹ÓõÄÐÒéÎļþ¡£BACKUP ÃüÁîµÄ OPTIONS
×Ó¾äÖÐÌṩµÄÑ¡Ï¼Óµ½½Å±¾ÃüÁîÖС£Ã¿¸öÃüÁîÒ²»áÓÉ DB2 дÈëµ½ÐÒéÎļþÖС£
Ç°ÃæÒѾÌáµ½¹ý£¬DB2 ÌṩÁËÒ»¸öÑùÀý¿Í»§½Å±¾À´ÑÝʾ¸ÃʵÀý·¾¶ $HOME/sqllib/samples/BARVendor
ÖеÄÃû³Æ libacssc.sh µÄ½á¹¹ºÍ¿ÉÄܵÄÓ÷¨¡£ºóÐø¼¸¸öС½ÚÖеÄʾÀý¶¼»áʹÓô˽ű¾¡£´Ë½Å±¾ÔÚÒÔÏÂÐе÷ÓÃÑ¡Ïîʱ»áÁ¢¼´½âÎöÕâЩѡÏ
while getopts a:c:o:t: OPTION do case ${OPTION} in a) action=${OPTARG} ;; c) config=${OPTARG} ;; o) objectId=${OPTARG} ;; t) timestamp=${OPTARG} ;; \?) echo "# Unknown parameter '$1'" esac done |
¶¯×÷Ñ¡Ïî (-a) µ÷Óà shell ½Å±¾ÖеÄÏàÓ¦º¯Êý£¬ÈçÏÂÃæµÄ´úÂë¶ÎÖÐËùʾ£¬ÆäÖÐÒÔ do ¿ªÍ·µÄ×Ö·û´®ÊǺ¯ÊýµÄÃû³Æ£º
case "$action" in prepare) doPrepare ;; snapshot) doSnapshot ;; restore) doRestore ;; delete) doDelete ;; verify) doVerify ;; store_metadata) doStoreMetaData ;; rollback) doRollback ;; esac |
¿Í»§½Å±¾¿ÉÔÚÖ´Ðжà¸ö²Ù×÷ÆÚ¼äÖ§³ÖһЩ¶¯×÷¡£ÀýÈ磬prepare ¶¯×÷»áÔÚËùÓвÙ×÷£¨°üÀ¨ snapshot¡¢restore¡¢query
ºÍ delete£©Ö´ÐÐÆÚ¼ä·¢Éú¡£³öÓÚÕâ¸öÄ¿µÄ£¬¶ÔÕâЩ¶¯×÷µÄµ÷ÓÃÓ¦ÓµÓÐÒÔϽṹ£¬ÕâÑù²ÅÄܶԲ»Í¬µÄ²Ù×÷ÔËÐв»Í¬µÄ²½Ö裺
getSetting "OPERATION" operation=$_setting case "$operation" in snapshot) ... ;; delete) ... ;; restore) ... ;; query) ... ;; esac |
ÿ¸ö¶¯×÷¶¼ÒÔÒ»¸ö·µ»Ø´úÂë½áÊø£¬¸Ã´úÂëÓÉ DB2 дÈëÐÒéÎļþ£¬²¢ÓµÓÐͨÓÃǰ׺ RC_£»Èç¹û prepare
¶¯×÷ÔÚ¿Í»§½Å±¾ÖÐÓÉ exit 1 ÖÕÖ¹£¬ÄÇô DB2 »á½« RC_PREPARE=4 дÈëÐÒéÎļþÖС£
ÑùÀý¿Í»§½Å±¾°üº¬Á½¸ö°ïÖúº¯Êý¡£º¯Êý getSetting ´ÓÐÒéÎļþÖзµ»ØÒ»¸öÑ¡Ïî¡£¸Ãº¯ÊýÖÐ×îÖØÒªµÄÒ»ÐÐÈçÏ£º
cmd="awk -F= '/^${1}/ { print \$2 }' $useConfig | head -1" |
Ëü½èÖú UNIX ¹¤¾ß awk ¶ÁÈ¡ÍêÕûµÄÐÒéÎļþ£¬²¢Í¨¹ý½âÎö»ñµÃ¼üµÄÖ¸¶¨Ãû³Æ¡£¸ÃÖµÓÉ = ·ûºÅ·Ö¸ô¡£head
-1 ½«Ëù·µ»ØµÄÖµµÄÊýÁ¿ÏÞÖÆµ½µÚÒ»¸ö¡£
µÚ¶þ¸öº¯Êý storeSetting ½«Ñ¡ÏîдÈëÐÒéÎļþÖУ¬²¢Óà ¡°=¡± ·ûºÅ·Ö¸ôËüÃÇ£¬ÕâʹµÃÔÚÐÒéÎļþÖб£³Ö´ËÓï·¨±äµÃ¸üÈÝÒס£Ëüͨ¹ýÒÔÏ´úÂëÍê³É´ËÈÎÎñ£º
ͨ³££¬¿Í»§½Å±¾ÖÐʹÓõÄÿ¸öûÓÐÄ¿±êµÄ echo ÃüÁîµÄÊä³ö¶¼»áдÈëÐÒé½Å±¾ÖС£Èç¹ûÏ£ÍûʹÓÃÁíÒ»¸öÎļþ±£´æµ÷ÊÔÐÅÏ¢£¬¿ÉÒÔÏò
echo ÃüÁ¼ÓÒ»¸öÄ¿±ê£º
echo "$1=$2" >> target_file |
Snapshot
ÔÚ snapshot ²Ù×÷ÆÚ¼ä£¬»áµ÷Óÿͻ§½Å±¾ 4 ´Î£¬·Ö±ðΪ prepare¡¢snapshot¡¢verify
ºÍ£¨ÒÀÀµÓÚ verify µ÷ÓõĽá¹û£©storemetadata »ò rollback¡£Í¼ 3 ¸ÅÊöÁË
snapshot ²Ù×÷µÄ¶¯×÷£º

ͼ 3. snapshot ²Ù×÷µÄ¶¯×÷¸ÅÊö
µÚÒ»´Îµ÷Óÿͻ§½Å±¾Ê±£¬³ýÁË db2ACSInitialize µ÷ÓÃÌṩµÄÐÅÏ¢Ö®Í⣬Çåµ¥ 2 ÖеÄÐÅÏ¢ÒÑдÈëÐÒéÎļþÖУ¬Èçͼ
3 Ëùʾ£º
Çåµ¥ 2. µÚÒ»´Îµ÷ÓõĿͻ§½Å±¾
# ========================================================= # db2ACSBeginOperation(): BEGIN [Mon Apr 22 05:00:23 2013] OPERATION=SNAPSHOT # db2ACSBeginOperation(): END [Mon Apr 22 05:00:23 2013] # ========================================================= # db2ACSPartition(): BEGIN [Mon Apr 22 05:00:23 2013] OBJ_HOST=hal9000 OBJ_OWNER= OBJ_TYPE=SNAPSHOT OBJ_DB2ID_LEVEL=0 OBJ_DB2ID_RELEASE=5 OBJ_DB2ID_VERSION=10 APP_OPTIONS=1100 TIMESTAMP=20130422050024 DB2BACKUP_MODE=ONLINE DB2BACKUP_LOGS=INCLUDE LOGPATH_PRIMARY=/home/db2jk1/db2jk1/NODE0000/SQL00001/LOGSTREAM0000/ DATAPATH_DB=/home/db2jk1/db2jk1/NODE0000/SQL00001/MEMBER0000/ DATAPATH_LOCAL_DB=/home/db2jk1/db2jk1/NODE0000/sqldbdir/ DATAPATH_DB=/home/db2jk1/db2jk1/NODE0000/SQL00001/ DATAPATH_AUTOSTORAGE=/home/db2jk1/db2jk1/NODE0000/JK1/ # db2ACSPartition(): END [Mon Apr 22 05:00:23 2013] # ========================================================= |
ÆäÖУ¬×îÖØÒªµÄÑ¡ÏîÒÔ DATAPATH »ò LOGPATH ¿ªÍ·£»ËüÃÇÏÔʾÁ˱ØÐë°üº¬ÔÚ¿ìÕÕÖеÄ·¾¶ºÍÈÕ־Ŀ¼¡£¿ÉÒÔ¿´µ½£¬ËüÃÇ»¹ÏÔʾÁËÊý¾Ý·¾¶µÄÀàÐÍ£¬ÀýÈç×Ô¶¯´æ´¢Â·¾¶
(DATAPATH_AUTOSTORAGE) ºÍÊý¾Ý¿â·¾¶ (DATAPATH_DB)¡£Í¬ÑùµØ£¬ÈÕ־Ŀ¼±»Ö¸¶¨Îª
LOGPATH_PRIMARY£¨Ö÷ÒªÈÕ־·¾¶£©ºÍ LOGPATH_MIRROR£¨¾µÏñÈÕ־·¾¶£¬Èç¹û´æÔÚ£©¡£µ±È»£¬Ö»ÓбØÐëÔÚ¿ìÕÕÖаüº¬ÈÕ־ʱ£¨¾ÍÏñ±¾ÀýÖÐÒ»Ñù£©£¬²Å»áÌṩÈÕ־·¾¶¡£¹ØÓÚÐÒéÎļþÖпÉÄܰüº¬µÄ¼üÃû³ÆµÄÍêÕûÁÐ±í£¬Çë²ÎÔÄ
DB2 10.5 Êý¾ÝÖÐÐÄµÄ DB2 ACS ÐÒéÎļþ²¿·ÖËùʾµÄ±í¡£
Ñ¡Ïî DB2BACKUP_MODE ¿ÉÒÔ½ÓÊÜÖµ ONLINE ºÍ OFFLINE£¬ÓÃËüÃÇÀ´·´Ó³ÔÚÏß»òÀëÏß¿ìÕÕ¡£Ä¬ÈÏֵΪ
OFFLINE¡£DB2BACKUP_LOGS ½ÓÊÜÖµ INCLUDE »ò EXCLUDE£¬¾ßÌåÇé¿öÈ¡¾öÓÚÔÚ
DB2 backup ÃüÁîÖÐÖ¸¶¨Á˰üº¬»¹ÊÇÅųýÈÕÖ¾¡£Ä¬ÈÏֵΪ INCLUDE£¨ONLINE ºÍ OFFLINE
±¸·Ý¶¼ÊÇÈç´Ë£©¡£
Prepare
½«´ËÐÅϢдÈëÐÒéÎļþºó£¬¾Í»áʹÓö¯×÷ prepare µÚÒ»´Îµ÷Óÿͻ§½Å±¾£º
Çåµ¥ 3. ʹÓö¯×÷ prepare µÚÒ»´Îµ÷Óÿͻ§½Å±¾
# ========================================================= # db2ACSPrepare(): BEGIN [Mon Apr 22 05:00:23 2013] # cmd: /home/db2jk1/sqllib/samples/BARVendor/libacssc.sh -a prepare -c /repository/db2acs.JK1.0.db2jk1.1366621223.cfg /repository 2ndoption RC_PREPARE=0 # db2ACSPrepare(): END [Mon Apr 22 05:00:23 2013] # ========================================================= |
ÔÚÕâÖ®ºó£¬ÏÂÒ»¸öµ÷ÓÃÊÇ snapshot µ÷Óá£Ôڴ˵÷ÓÃ֮ǰ£¬Èç¹û¿ìÕÕÒÑÔÚÏߣ¬ÄÇôÊý¾Ý¿âµÄ write
²Ù×÷ÊÇ¹ÒÆðµÄ£»Ò²¾ÍÊÇ˵ WRITE SUSPEND »á×Ô¶¯ÔÚÊý¾Ý¿âÉÏÉèÖá£Òò´Ë£¬prepare µ÷ÓÃÊÇ×¼±¸Îļþϵͳ£¬¼ì²é´æ´¢ÏµÍ³µÄ¿Õ¼äÐèÇóºÍʵ¼Ê´´½¨¿ìÕÕ֮ǰִÐÐÆäËû²Ù×÷µÄÕýȷλÖá£ÑùÀý¿Í»§½Å±¾Ôڸõ÷ÓÃÆÚ¼äδִÐÐÈκβÙ×÷¡£
Snapshot
ÏÖÔÚÒÑ×¼±¸¾ÍÐ÷£¬DB2 ¿Éµ÷Óøýű¾À´Êµ¼Ê´´½¨¿ìÕÕÁË¡£ÔÙ´ÎÉùÃ÷£¬ÔÚµ÷ÓÃ֮ǰ£¬Èç¹û±¸·ÝģʽΪ ONLINE£¬ÄÇô
DB2 »á½«Êý¾Ý¿âÉèÖÃΪ WRITE SUSPEND ģʽ¡£Èç¹ûÖ¸¶¨ÁËÅųýÈÕÖ¾£¬¶ÔÈÕÖ¾ÎļþÖ´ÐеÄдÈ뽫»á¼ÌÐøÖ´ÐУ¨ÓйØ
SET WRITE ÃüÁîµÄ¸ü¶àÐÅÏ¢£¬Çë²ÎÔÄ DB2 ÐÅÏ¢ÖÐÐÄ£©¡£Èç¹û¿Í»§½Å±¾Î´ÏòÐÒéÎļþдÈëÈκÎÐÅÏ¢£¬db2ACSSnapshot
²¿·Ö½«ÀàËÆÓÚÇåµ¥ 4£º
Çåµ¥ 4. db2ACSSnapshot º¯Êý
# ========================================================= # db2ACSSnapshot(): BEGIN [Mon Apr 22 05:00:23 2013] OBJ_ID=0 ACTION=DB2ACS_ACTION_WRITE # cmd: /home/db2jk1/sqllib/samples/BARVendor/libacssc.sh -a snapshot -c /repository/db2acs.JK1.0.db2jk1.1366621223.cfg /repository 2ndoption RC_SNAPSHOT=0 # db2ACSSnapshot(): END [Mon Apr 22 05:00:25 2013] # ========================================================= |
ÑùÀý¿Í»§½Å±¾°ü×°ÁËÁ½¸ö¹éµµÎļþ£ºÒ»¸öÓÃÓÚÊý¾Ý·¾¶£¬ÁíÒ»¸öÓÃÓÚÈÕ־·¾¶£¨¼ÙÉèËüÃÇ´æÔÚ£©ºÍÈÕÖ¾Îļþ£¨°üÀ¨ÎÒÃÇÖ¸¶¨µÄÎļþ£©¡£
Òª´´½¨Êý¾ÝÎļþµÄ¿ìÕÕ£¬¿ÉÖ´ÐÐÒÔϲ½Öè¡£¸Ã½Å±¾Í¨¹ýÒÔϲ½Öè½ÓÊÜÆäÑ¡ÏîÃû³ÆÒÔ DATAPATH ¿ªÍ·µÄËùÓз¾¶£¬²¢½«ËüÃǰü×°ÔÚÕâ¸ö
tar ¹éµµÎļþÖУº
¹¹ÔìÊý¾ÝÎļþµÄÎļþÃû£º
file="${repository}${db_name}.0.${instance}.${dbpartnum}.${timestamp}.001.tar" |
ÈçÄúËù¼û£¬¸ÃÎļþÃûÖаüº¬Êý¾Ý¿âÃû³Æ¡¢ÊµÀýÃû³Æ¡¢·ÖÇø±àºÅºÍ¿ìÕÕµÄʱ¼ä´Á¡£ÕâЩÃû³ÆÍ¬Ñù»ùÓÚͨÓÃµÄ DB2
±¸·ÝµÄÃû³Æ¡£
½«ÎļþÃû´æ´¢ÔÚÐÒéÎļþÖУº
storeSetting "BACKUP_FILE" $file |
¹¹ÔìÃüÁ
cmd="awk -F= '/^DATAPATH/ { print \$2; }' $config | xargs tar -cf $file 2>/dev/null && echo 0 || echo 1" |
½«¸ÃÃüÁîдÈëÐÒéÎļþÖУº
ÔËÐиÃÃüÁî²¢¶ÁÈ¡·µ»Ø´úÂ룺
½«·µ»Ø´úÂëдÈëÐÒéÎļþÖУº
echo "# backup tar created, rc=$RC" |
ÏÖÔÚ£¬¸Ã½Å±¾±ØÐë´¦ÀíÈÕÖ¾Îļþ¡£Ê×ÏÈ£¬Ëü¶ÁÈ¡ÏàӦѡÏîµÄÖµÀ´È·¶¨ÊÇ·ñ±ØÐë°üº¬ÈÕÖ¾Îļþ£º
getSetting "DB2BACKUP_LOGS" includeLogs=$_setting |
È»ºó¸ù¾Ý´Ë½á¹ûÖ´Ðж¯×÷£º
if [ $includeLogs = "INCLUDE" ] then echo "# Logs to be included" |
ÈÕÖ¾ÎļþµÄ tar ¹éµµÎļþµÄÃû³ÆµÄ¹¹Ô췽ʽÓëÊý¾Ý·¾¶µÄ tar ÎļþµÄ tar Ãû³ÆÏàͬ£¬Í¬Ñù´æ´¢ÔÚÐÒéÎļþÖС£ÈÕÖ¾ÎļþµÄ
tar ÎļþµÄ°ü×°·½Ê½Ò²ÓëÊý¾Ý·¾¶µÄ tar ÎļþÏàͬ£¬µ«ÕâÒ»´Î½ÓÊܵÄÊÇÒÔ LOGPATH ¿ªÍ·µÄÑ¡ÏîµÄÖµ£º
¹¹ÔìÊý¾ÝÎļþµÄÎļþÃû
file="${repository}${db_name}.0.${instance}.${dbpartnum}.${timestamp}.log.tar" |
¸ÃÃû³ÆÀàËÆÓÚÊý¾ÝÎļþµÄ tar Îļþ£¬µ«°üº¬×Ö·û´® ¡°log¡± ¶ø²»ÊÇ ¡°001¡±¡£
½«ÎļþÃû´æ´¢ÔÚÐÒéÎļþÖÐ
storeSetting "BACKUP_FILE" $file |
¹¹ÔìÃüÁ
cmd="awk -F= '/^LOGPATH/ { print \$2; }' $config | xargs tar -cf $logs 2>/dev/null && echo 0 || echo 1" |
½«¸ÃÃüÁîдÈëÐÒéÎļþÖУº
ÔËÐиÃÃüÁî²¢¶ÁÈ¡·µ»Ø´úÂ룺
½«·µ»Ø´úÂëдÈëÐÒéÎļþÖУº
echo "# tar for logs created, rc=$RC" |
Çåµ¥ 5 ÊÇÒ»¸öÐÒéÎļþµÄ²¿·ÖÄÚÈÝ£¬ÏÔʾÁË¿ìÕÕµ÷ÓõÄÍêÕûÄÚÈÝ£¬°üÀ¨ÑùÀý¿Í»§½Å±¾±àдµÄËùÓÐ×¢ÊÍ£º
Çåµ¥ 5. Ò»¸öÐÒéÎļþµÄ²¿·ÖÄÚÈÝ
# ========================================================= # db2ACSSnapshot(): BEGIN [Mon Apr 22 05:00:23 2013] OBJ_ID=0 ACTION=DB2ACS_ACTION_WRITE # cmd: /home/db2jk1/sqllib/samples/BARVendor/libacssc.sh -a snapshot -c /repository/db2acs.JK1.0.db2jk1.1366621223.cfg # /repository 2ndoption BACKUP_FILE=/repository/JK1.0.db2jk1.0.20130422050024.001.tar # cmd: awk -F= '/^DATAPATH/ { print $2; }' /repository/db2acs.JK1.0.db2jk1.1366621223.cfg | xargs tar -cf /repository/JK1.0.db2jk1.0.20130422050024.001.tar 2>/dev/null && echo 0 || echo 1 # backup tar created, rc=0 # Logs to be included BACKUP_LOGS=/repository/JK1.0.db2jk1.0.20130422050024.log.tar # cmd: awk -F= '/^LOGPATH/ { print $2; }' /repository/db2acs.JK1.0.db2jk1.1366621223.cfg | xargs tar -cf /repository/JK1.0.db2jk1.0.20130422050024.log.tar 2>/dev/null && echo 0 || echo 1 # tar for logs created, rc=0 RC_SNAPSHOT=0 # db2ACSSnapshot(): END [Mon Apr 22 05:00:25 2013] # ========================================================= |
ÔÚ¿Í»§½Å±¾Íê³É¿ìÕÕ¶¯×÷²¢½«¿ØÖÆÈ¨·µ»Ø¸ø DB2 ºó£¬»áÁ¢¼´ÔÙ´ÎÔÊÐíÖ´ÐÐÊý¾Ý¿âµÄ write ²Ù×÷£»Ò²¾ÍÊÇ˵£¬Èç¹û±¸·ÝģʽΪ
ONLINE£¬Ôò»á×Ô¶¯ÉèÖà WRITE RESUME¡£
|