DB2 database back up and restore commands and using db2cc tool unix and windows

DB2 database back up and restore commands & using db2cc tool UNIX and windows

This post briefs the steps to take back up of a database in DB2.
There are mutiple ways to take database back up in DB2. I felt the easiest way of taking back up for a database is using the DB2CC tool (DB2 control center tool). There the process or steps to take back up or restore a particular DB is pretty straight and easy.

Yet another simple process to take back up is commands in the command line.

To take back up : 
  db2inst1@nc145016:/opt> db2 BACKUP DATABASE CDSDB TO "/opt/BKP"

                           Backup successful. The timestamp for this backup image is : 20100709051851
However you can see the command generated during the back up taking process using db2cc tool. 
It looks some thing like below ...
-- The following commands may not run as expected in a multi database partition environment if executed from a single script.

-- Quiesce Database
-- Run on any database partition.
CONNECT TO CDSDB;
QUIESCE DATABASE IMMEDIATE FORCE CONNECTIONS;
CONNECT RESET;

-- Backup Database Partition Grouping 1
-- Run on database partition(s): 0
BACKUP DATABASE CDSDB TO "/opt/BKP" WITH 2 BUFFERS BUFFER 1024 PARALLELISM 1 WITHOUT PROMPTING;

-- Unquiesce Database
-- Run on any database partition.
CONNECT TO CDSDB;
UNQUIESCE DATABASE;
CONNECT RESET;

To restore a database : 
A simple command looks like below to restore a particular database.
 db2inst1@nc145016:/opt/BKP> db2 RESTORE DATABASE CDSDB FROM "/opt/BKP" TAKEN AT 20100708081818
                               DB20000I  The RESTORE DATABASE command completed successfully.

And where as the db2cc generated SQL query may look like some thing below 

RESTORE DATABASE CDSDB FROM "/opt/BKP" TAKEN AT 20100708081818 WITH 2 BUFFERS BUFFER 1024 PARALLELISM 1 WITHOUT PROMPTING;

Hope this helps .. any related information to db2 database back up / restore process can be posted to this in comments.

Reference : [1] [2] [3]

Read more


Not in Usage for DB2 SQL select subqueries

Here is a sample SQL queries to compare the usage of "NOT IN" in Oracle and DB2..

Usually to filter few rows from the result of one SELECT query we combine another SELECT query with NOT IN phrase.

Example : 1  in Oracle
SELECT * FROM emp WHERE rownum=1 AND rowid NOT IN(SELECT rowid FROM emp WHERE rownum < 10);

Example 2 : in DB2
SELECT FD.SERVER_NAME FROM CDSSCHEMA.DEPOT_SERVER FD where FD.SERVER_NAME NOT IN (SELECT DS.SERVER_NAME FROM CDSSCHEMA.TARGETLIST_MAP TM, CDSSCHEMA.TARGETLIST T, CDSSCHEMA.DEPOT_SERVER DS, CDSSCHEMA.TARGET_SERVER TS WHERE TM.PACKAGE_ID='1278328705570' AND TM.TARGETLIST_ID=T.TARGETLIST_ID AND DS.SERVER_ID=TS.SERVER_ID AND TS.TARGETLIST_ID=T.TARGETLIST_ID ORDER BY DS.SERVER_NAME)

The above query return the list of depot server names which are not in the second select queury.

Read more


shell script to print/check directory permissions on Unix

Shell script to print/check directory permissions on Unix
Here is a small shell script which will print a directory permissions and other details...
Basically I want to check whether a directory has the read write permissions for the user?
I am using here a simple commonsense that a read write permissions will make the octal permissions of it more than 600 for sure .. that's it.
d rwx rwx rwx
d rw- --- ---
   420 000 000
   6     0      0
   rwx r-x r-x
   7 5 5
So it should be always greater than 600 for a directory to have read write permissions always.
Basically I'm using stat tool to find the permissions of a dir
Ex : check stat for /opt/a
nc184120:/opt # stat /opt/a
  File: `/opt/a'
  Size: 48              Blocks: 0          IO Block: 4096   directory
Device: 802h/2050d      Inode: 101912      Links: 2
Access: (0155/d--xr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2010-07-01 22:53:59.845347264 -0700
Modify: 2010-07-01 01:45:43.769709152 -0700
Change: 2010-07-01 01:46:14.790993200 -0700

So the above script doesn't have read or write permissions.

Shell script  :
nc184120:/opt # cat per.sh
dir="/opt/a"
echo "Checking the permissions for $dir"
stat $dir
echo "##############################################"
if [ `stat -c "%a" $dir` -ge 600 ] ; then
     echo "$dir has Read Write permissions."
else
     echo "$dir has no read write permissions."
fi

and the output looks like below ...
nc184120:/opt # ./per.sh
Checking the permissions for /opt/a
  File: `/opt/a'
  Size: 48              Blocks: 0          IO Block: 4096   directory
Device: 802h/2050d      Inode: 101912      Links: 2
Access: (0155/d--xr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2010-07-01 22:53:59.845347264 -0700
Modify: 2010-07-01 01:45:43.769709152 -0700
Change: 2010-07-01 01:46:14.790993200 -0700
##############################################
/opt/a has no read write permissions.


Read more

Popular Posts

Enter your email address:

Buffs ...

Tags


Powered by WidgetsForFree