sany_ok

db2

Nov 11th, 2014
274
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 12.50 KB | None | 0 0
  1. #=====begin of copyright notice=====                                                                                                                        
  2. copyright()                                                                                                                                                
  3. {                                                                                                                                                          
  4.         echo -e "                                                                                                                                          
  5.                                                                                                                                                            
  6.        THE AULIX_UTILS FOR DEBIAN AND CENTOS \n                                                                                                            
  7.        The AUTHOR of this file is Alexander Borisovich Prokopyev, Kurgan, Russia \n                                                                        
  8.        More info can be found at the AUTHOR's website: http://www.aulix.com/resume \n                                                                      
  9.        Contact: alexander.prokopyev at aulix dot com \n                                                                                                    
  10.                                                                                                                                                            
  11.        Copyright (c) Alexander Prokopyev, 2006-2014 \n                                                                                                    
  12.                                                                                                                                                            
  13.        All materials contained in this file are protected by copyright law. \n
  14.        Nobody except the AUTHOR may alter or remove this copyright notice from copies of the content. \n
  15.        
  16.        The AUTHOR allows to use this content under AGPL v3 license:
  17.        http://opensource.org/licenses/agpl-v3.html
  18.  
  19.        ";
  20. }
  21.  
  22. copyright;
  23. #=====end of copyright notice=====
  24.  
  25.  
  26. Action=$1
  27. #Version=$2
  28. #set -x
  29.  
  30. flush_cmd=/utils/disk/flush.sh;
  31. notify_admin_cmd=/utils/custom/notify_admin.sh;
  32.  
  33. if test -d /opt/IBM/db2/V8.1; then
  34.         Version="8.1"
  35. else
  36.         if test -d /opt/ibm/db2/V9.7; then
  37.                 Version="9.7";
  38.         fi
  39.         if test -d /opt/ibm/db2/V10.1; then
  40.                 Version="10.1";
  41.         fi
  42. fi
  43.  
  44. #case $Action in
  45. #( create_instance | drop_instance | upgrade_instance )
  46.         case $Version in
  47.         ( 8.1 )
  48.                 DB2Path=/opt/IBM/db2/V8.1;
  49.                 UpdateLevelCmd="db2updv8";
  50.         ;;
  51.         ( 9.7 )
  52.                 DB2Path=/opt/ibm/db2/V9.7;
  53.                 UpdateLevelCmd="db2updv97";
  54.         ;;
  55.         ( 10.1 )
  56.                 DB2Path=/opt/ibm/db2/V10.1;
  57.                 UpdateLevelCmd="db2updv97";
  58.         ;;
  59.         (*)
  60.                 echo "Please specify the version of your db2 just after action arg: 8.1 or 9.7";
  61.                 exit 0
  62.         ;;
  63.         esac
  64. #;;
  65. #esac;
  66.  
  67. rebind_client()
  68. {
  69.         db2 bind /home/db2inst/sqllib/bnd/@db2ubind.lst blocking all grant public sqlerror continue;
  70.         db2 bind /home/db2inst/sqllib/bnd/@db2cli.lst blocking all grant public;
  71. #       =========== Windows:
  72. #       cd C:\Program Files\IBM\SQLLIB\bnd\
  73. #       db2cmd
  74. #       db2 connect to $DBName user db2inst using
  75. #       db2 bind @db2ubind.lst blocking all grant public sqlerror continue
  76. #       db2 bind @db2cli.lst blocking all grant public
  77. }
  78.  
  79. config_dbm()
  80. {
  81.         ParamName=$1; Value=$2;
  82.         db2 update dbm cfg using $ParamName $Value;
  83. }
  84.  
  85. config_db()
  86. {
  87.         DBName=$1; ParamName=$2; Value=$3;
  88.         db2 update db cfg for $DBName using $ParamName $Value;
  89. }
  90.  
  91. stop_db2()
  92. {
  93.         db2stop force;
  94.         $flush_cmd;
  95. }
  96.  
  97. restart_db2()
  98. {
  99.         stop_db2;
  100.         db2start;
  101. }
  102.  
  103. restart_db2_verified()
  104. {
  105.         DBName=$1;
  106.  
  107.         db2stop force;
  108.         sleep 1s;
  109.         # db2start; exit 0 # skip db2dart test
  110.         mkdir /tmp/db2dart; rm -f /tmp/db2dart/*; cd /tmp/db2dart;
  111.         if db2dart $DBName | grep "The requested DB2DART processing has completed successfully"; then
  112.                 echo "DB integrity is Ok";
  113.                 sleep 1s;
  114.                 db2start;
  115.         else
  116.                 echo "DB integrity is BAD";
  117.                 $notify_admin_cmd "DB integrity is BAD";
  118.         fi;
  119. }
  120.  
  121. get_dbm_param()
  122. {
  123.         ParamName=$1;
  124.         db2 get dbm config | grep "($ParamName)"| awk -F" = " '{print $2}';
  125. }
  126.  
  127. enable_monitoring()
  128. {
  129.         config_dbm DFT_MON_BUFPOOL ON;
  130.         config_dbm DFT_MON_LOCK ON;
  131.         config_dbm DFT_MON_SORT ON;
  132. }
  133.  
  134. case $Action in
  135.  
  136. ( install_wse )
  137.         cat /utils/db2/db2_rpm_list_wse.txt | /utils/exec_for_each_line.sh 'rpm -i' '.x86_64.rpm'
  138. ;;
  139.  
  140. ( install_ese )
  141.         cat /utils/db2/db2_rpm_list_ese.txt | /utils/exec_for_each_line.sh 'rpm -i' '.x86_64.rpm'
  142. ;;
  143.  
  144. ( install_client )
  145.         cat /utils/db2/db2_rpm_list_client.txt | /utils/exec_for_each_line.sh 'rpm -i' '.i386.rpm'
  146. ;;
  147.  
  148. ( create_client )
  149.         /utils/db2/do.sh delete_users
  150.         groupadd -g 10999 db2iadm
  151.         useradd -u 11004 -g db2iadm -m -d /home/db2inst db2inst
  152.         usermod -aG db2iadm root
  153.         #/opt/IBM/db2/V8.1/instance/db2istrt - purpose?
  154.         $DB2Path/instance/db2icrt -a SERVER -s client db2inst
  155. ;;
  156.  
  157. ( uninstall )
  158.         cat /utils/db2/db2_rpm_list_all.txt | /utils/exec_for_each_line.sh 'rpm -e'
  159. ;;
  160.  
  161. ( switch_to_wse )
  162.         rpm -e IBM_db2conn81-8.1.3-156 IBM_db2pext81-8.1.3-156 IBM_db2essg81-8.1.3-156
  163.         /utils/db2/do.sh install_wse
  164. ;;
  165.  
  166. ( create_users )
  167.         groupadd -g 10999 db2iadm
  168.         groupadd -g 10998 db2fadm
  169.         groupadd -g 10997 dasadm
  170.         useradd -u 11004 -g db2iadm -m -d /home/db2inst db2inst
  171.         useradd -u 11003 -g db2fadm -m -d /home/db2fenc db2fenc
  172.         useradd -u 11002 -g dasadm -m -d /home/dasusr dasusr
  173.         usermod -aG db2iadm,dasadm root
  174. ;;
  175.  
  176. ( delete_users )
  177.         userdel -r db2inst
  178.         userdel -r db2fenc
  179.         userdel -r dasusr
  180.         groupdel db2iadm
  181.         groupdel db2fadm
  182.         groupdel  dasadm
  183. ;;
  184.  
  185. ( recreate_users )
  186.         /utils/db2/do.sh delete_users
  187.         /utils/db2/do.sh create_users
  188. ;;
  189.  
  190. ( create_instance )
  191. #       set -x
  192.         /utils/db2/do.sh recreate_users;
  193. #       License=$3
  194. #       if test -n $License; then
  195. #               License="-s "$License
  196. #       fi
  197.         $DB2Path/instance/dascrt -u dasusr;
  198.         $DB2Path/instance/db2icrt $2 $3 $4 $5 $6 $7 $8 -u db2fenc db2inst;
  199. #       -w 64
  200.         $DB2Path/cfg/db2ln;
  201.  
  202.         echo -e "\nsource /home/db2inst/sqllib/db2profile" >> /root/.bashrc;
  203.         #echo -e "\nsource /home/dasusr/das/dasprofile" >> /root/.bashrc
  204.  
  205.         source /home/db2inst/sqllib/db2profile;
  206. #       db2set DB2COMM=tcpip
  207. #       db2 update dbm config using svcename 50000
  208.         db2start;
  209. ;;
  210.  
  211. ( stop_das )
  212.         case $Version in
  213.         ( 8.1 )
  214.                 su -c "source /home/dasusr/.profile; db2admin stop;" dasusr;
  215.         ;;
  216.         ( 9.7 | 10.1 )
  217.                 su -c "source /home/dasusr/das/dasprofile; db2admin stop;" dasusr;
  218.         ;;
  219.         esac;
  220. ;;
  221.  
  222. ( start_das )
  223.         case $Version in
  224.         ( 8.1 )
  225.                 su -c "source /home/dasusr/.profile; db2admin start;" dasusr;
  226.         ;;
  227.         ( * )
  228.                 su -c "source /home/dasusr/das/dasprofile; db2admin start;" dasusr;
  229.         ;;
  230.         esac;
  231. ;;
  232.  
  233. #( stop_before_fixpak )
  234. #       su - db2inst -c "db2 force applications all;db2 terminate;db2stop"
  235. #       su - tstdbadm -c "db2admin stop"
  236. #       /opt/ibm/db2/V9.7/bin/db2fmcu -d
  237. #       /opt/ibm/db2/V9.7/bin/db2fm -D -i tstdbadm
  238. #       su - db2inst -c "ipclean"
  239. #;;
  240.  
  241. ( stop_dog )
  242.         $DB2Path/bin/db2fmcu -d
  243.         killall -s 9 db2fmcd db2fmd db2bp db2dasrrm
  244. ;;
  245.  
  246. ( drop_instance )
  247. #       set -x
  248.         db2stop
  249.         $DB2Path/instance/db2idrop db2inst
  250.         /utils/db2/do.sh stop_das
  251.         $DB2Path/instance/dasdrop
  252.         /utils/db2/do.sh stop_dog
  253. ;;
  254.  
  255. ( upgrade_db )
  256.         DBName=$2;
  257.         db2start;
  258.         db2 migrate db $DBName;
  259.         $UpdateLevelCmd -d $DBName;
  260.         config_db $DBName STMTHEAP 40000;
  261.         db2rbind $DBName all -l /dev/stdout;
  262.         echo "NOTE!!!: If above failed increase statement cache: db2 update db config for $DBName using STMTHEAP 32000"
  263.         db2 terminate; db2 connect to $DBName;
  264.         db2 bind /home/db2inst/sqllib/bnd/db2schema.bnd blocking all grant public sqlerror continue;
  265.         db2 bind /home/db2inst/sqllib/bnd/db2dsproc.bnd blocking all grant public;
  266.         rebind_client;
  267.         echo "NOTE!!!: Do following on each client with different db2level: /utils/db2/do.sh rebind_client"
  268.         echo -e "\n SQL procedures and all external libraries must be rebuilt on the new platform"
  269.         db2 terminate;
  270. ;;
  271.  
  272. ( rebind_client )
  273.         rebind_client;
  274. ;;
  275.  
  276. ( upgrade_instance )
  277.         db2stop force;
  278.         $DB2Path/instance/dasupdt;
  279.         $DB2Path/instance/db2iupdt db2inst;
  280.         db2start;
  281. ;;
  282.  
  283. ( config_kernel )
  284.         echo "# ***** DB2 config: *****" >> /etc/sysctl.conf;
  285.         echo "kernel.sem=250 256000 32 1024" >> /etc/sysctl.conf;
  286.         echo "kernel.msgmax=65535" >> /etc/sysctl.conf;
  287.         echo "kernel.msgmnb=65535" >> /etc/sysctl.conf;
  288.         SystemMem=`cat /proc/meminfo | grep MemTotal:|awk '{print $2}'`;
  289.         echo "kernel.shmall=$[SystemMem/4*9/10]" >> /etc/sysctl.conf;
  290.         echo "kernel.shmmax=1073741824" >> /etc/sysctl.conf;
  291.         sysctl -p;
  292.         ipcs -l;
  293. ;;
  294.  
  295. ( config_db_n1 )
  296.         db2set DB2_PARALLEL_IO=4;
  297.         db2set DB2_EVALUNCOMMITTED=ON;
  298.         db2set DB2_SKIPINSERTED=ON;
  299.         db2set DB2_SKIPDELETED=ON;
  300.  
  301.         DBName=$2
  302.         config_db $DBName LOCKLIST 100000;
  303.         SORTHEAP=20000; config_db $DBName SORTHEAP $SORTHEAP; config_dbm SHEAPTHRES $[4*$SORTHEAP];
  304.         config_db $DBName SHEAPTHRES_SHR 1000;
  305.         config_db $DBName MAXLOCKS 20;
  306.         config_db $DBName LOGRETAIN NO;
  307.         config_db $DBName AUTO_REORG OFF;
  308.         MAXAGENTS=`get_dbm_param MAXAGENTS`; config_dbm MAXCAGENTS $[MAXAGENTS/2];
  309.         # config_db $DBName LOGBUFSZ 128; was
  310.         enable_monitoring;
  311.         restart_db2;
  312. ;;
  313.  
  314. ( config_db_n2 )
  315.         #set -x;
  316.         DBName=$2;
  317.  
  318.         db2set DB2_PARALLEL_IO="*:3";
  319.         config_db $DBName LOGRETAIN NO;
  320.         config_db $DBName LOGARCHMETH1 OFF;
  321.         enable_monitoring;
  322.         restart_db2;
  323. ;;
  324.  
  325. ( delete_v8links )
  326.         cat v8links.txt | /utils/for_each_line.sh rm;
  327. ;;
  328.  
  329. ( config_dbm | config_db | restart_db2 | stop_db2 | restart_db2_verified | config_db_n2 )
  330.         $Action $2 $3 $4;
  331. ;;
  332.  
  333. ( backup_db )
  334.     DBName=$2
  335.  
  336.         db2 connect to $DBName;
  337.         db2 quiesce db immediate force connections;
  338.         db2 connect reset;
  339.  
  340.         db2 backup db $DBName to "'"$3"'" DEDUP_DEVICE;
  341.  
  342.         db2 connect to $DBName;
  343.         db2 unquiesce db;
  344.         db2 connect reset;
  345. ;;
  346.  
  347. ( grant_readonly )
  348. #       set -x;
  349.  
  350.         DBName=$2;
  351.         Schema=$3;
  352.         Group=$4;
  353.  
  354.         db2 "connect to $DBName";
  355.         for T in $(db2 -x "select tabname from syscat.tables where tabschema='"$Schema"'"); do
  356.                 echo "Table: $T";
  357.                 db2 "grant select on $Schema.$T to group $Group";
  358.         done;
  359.  
  360.         for V in $(db2 -x "select viewname from syscat.views where viewschema='"$Schema"'"); do
  361.                 echo "View: $V";
  362.                 db2 "grant select on $Schema.$V to group $Group";
  363.         done;
  364.  
  365.         echo "All functions";
  366.         db2 "grant execute on function $Schema.* to group $Group";
  367.         #db2 "revoke execute on function $Schema.* from group $Group restrict";
  368.      
  369.         db2 "disconnect $DBName";
  370. ;;
  371.  
  372. ( show_memory )
  373.         db2mtrk -i -d -v;
  374. ;;
  375.  
  376. ( compress_backup )
  377.         pbzip2 -v -p7 /mnt/data/backup/db/*.0.db2inst.NODE0000.CATN0000.*.001;
  378.         cd /mnt/data/backup/db/; ls /mnt/data/backup/db/ | grep .001.bz2 | grep -v .001.bz2.gpg | /utils/for_each_line.sh /utils/pgp.sh;
  379.         mv /mnt/data/backup/db/*.bz2.gpg /mnt/data/backup/db/archive/;
  380.         rm -f /mnt/data/backup/db/*.bz2;
  381.         sync;
  382. ;;
  383.  
  384. (*)
  385.         echo Please specify an action like: install_rpms_64, remove_rpms, create_users, delete_users, create_instance, drop_instance
  386.         echo Sample: do.sh create_instance 9.7
  387.         exit 0
  388. ;;
  389. esac;
Advertisement
Add Comment
Please, Sign In to add comment