Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
DB2 Advanced Copy Services: ½Å±¾»¯½Ó¿Ú
 
×÷Õß Joern Klauke£¬Martin Jungfer £¬»ðÁú¹ûÈí¼þ    ·¢²¼ÓÚ 2014-08-18
  3335  次浏览      27
 

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 "$1=$2"

ͨ³££¬¿Í»§½Å±¾ÖÐʹÓõÄÿ¸öûÓÐÄ¿±êµÄ 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 "# cmd:
$cmd"

ÔËÐиÃÃüÁî²¢¶ÁÈ¡·µ»Ø´úÂ룺

RC=`eval
$cmd`

½«·µ»Ø´úÂëдÈëЭÒéÎļþÖУº

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 "# cmd: $cmd"

ÔËÐиÃÃüÁî²¢¶ÁÈ¡·µ»Ø´úÂ룺

RC=`eval $cmd`

½«·µ»Ø´úÂëдÈëЭÒéÎļþÖУº

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¡£

   
3335 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

»ùÓÚEAµÄÊý¾Ý¿â½¨Ä£
Êý¾ÝÁ÷½¨Ä££¨EAÖ¸ÄÏ£©
¡°Êý¾Ýºþ¡±£º¸ÅÄî¡¢ÌØÕ÷¡¢¼Ü¹¹Óë°¸Àý
ÔÚÏßÉ̳ÇÊý¾Ý¿âϵͳÉè¼Æ ˼·+Ч¹û
 
Ïà¹ØÎĵµ

GreenplumÊý¾Ý¿â»ù´¡Åàѵ
MySQL5.1ÐÔÄÜÓÅ»¯·½°¸
ijµçÉÌÊý¾ÝÖÐ̨¼Ü¹¹Êµ¼ù
MySQL¸ßÀ©Õ¹¼Ü¹¹Éè¼Æ
Ïà¹Ø¿Î³Ì

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

MySQLË÷Òý±³ºóµÄÊý¾Ý½á¹¹
MySQLÐÔÄܵ÷ÓÅÓë¼Ü¹¹Éè¼Æ
SQL ServerÊý¾Ý¿â±¸·ÝÓë»Ö¸´
ÈÃÊý¾Ý¿â·ÉÆðÀ´ 10´óDB2ÓÅ»¯
oracleµÄÁÙʱ±í¿Õ¼äдÂú´ÅÅÌ
Êý¾Ý¿âµÄ¿çƽ̨Éè¼Æ


²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿â
¸ß¼¶Êý¾Ý¿â¼Ü¹¹Éè¼ÆÊ¦
HadoopÔ­ÀíÓëʵ¼ù
Oracle Êý¾Ý²Ö¿â
Êý¾Ý²Ö¿âºÍÊý¾ÝÍÚ¾ò
OracleÊý¾Ý¿â¿ª·¢Óë¹ÜÀí


GE Çø¿éÁ´¼¼ÊõÓëʵÏÖÅàѵ
º½Ìì¿Æ¹¤Ä³×Ó¹«Ë¾ Nodejs¸ß¼¶Ó¦Óÿª·¢
ÖÐÊ¢Òæ»ª ׿Խ¹ÜÀíÕß±ØÐë¾ß±¸µÄÎåÏîÄÜÁ¦
ijÐÅÏ¢¼¼Êõ¹«Ë¾ PythonÅàѵ
ij²©²ÊITϵͳ³§ÉÌ Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À
ÖйúÓÊ´¢ÒøÐÐ ²âÊÔ³ÉÊì¶ÈÄ£Ðͼ¯³É(TMMI)
ÖÐÎïÔº ²úÆ·¾­ÀíÓë²úÆ·¹ÜÀí