1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
|
public static void compression (String backupdirectory){
Connection conn = conn1;
String nom = "Base1";
for (int i = 0; i <= 2; i = i+1 )
{
switch (i)
{
case 1:
conn = conn2;
nom = "Base2";
break;
case 2:
conn = conn3;
nom = "Base3";
break;
}
try
{
CallableStatement cst = conn.prepareCall
("CALL SYSCS_UTIL.SYSCS_DISABLE_LOG_ARCHIVE_MODE(?)");
cst.setInt(1, 1);
cst.execute();
cst.close();
PreparedStatement stmt = conn.prepareStatement("SELECT tablename as TableName, " +
"SYSCS_UTIL.SYSCS_CHECK_TABLE(schemaname, tablename) AS OK " +
"FROM sys.sysschemas s, sys.systables t WHERE s.schemaid = t.schemaid and t.tabletype = 'T'");
ResultSet results = stmt.executeQuery ();
String maTable = null;
SimpleDateFormat sdf = new SimpleDateFormat( "yyyyMMdd" );
String backupdirectory ="C:/Essai/backup" + nom + sdf.format(new Date( System.currentTimeMillis()));
cst = conn.prepareCall
("CALL SYSCS_UTIL.SYSCS_CHECKPOINT_DATABASE()");
cst.execute();
cst.close();
cst = conn.prepareCall
("CALL SYSCS_UTIL.SYSCS_DISABLE_LOG_ARCHIVE_MODE(?)");
cst.setInt(1, 1);
cst.execute();
cst.close();
while(results.next())
{
maTable = results.getString("TABLENAME");
System.out.println("ma table : " + maTable);
PreparedStatement stmt1 = conn.prepareStatement("SELECT * FROM TABLE(SYSCS_DIAG.SPACE_TABLE(?, ?)) AS T");
stmt1.setString(1, user);
stmt1.setString(2, maTable);
System.out.println("stmt: " + stmt1.toString());
ResultSet results1 = stmt1.executeQuery ();
if (results1.next())
{
System.out.println("ESTIMSPACESAVING : " + results1.getString("ESTIMSPACESAVING"));
System.out.println("NUMFREEPAGES : " + results1.getString("NUMFREEPAGES"));
}
cst = conn.prepareCall
("CALL SYSCS_UTIL.SYSCS_COMPRESS_TABLE(?, ?, ?)");
cst.setString(1, user);
cst.setString(2, maTable);
cst.setShort(3, (short) 1);
cst.execute();
System.out.println("Fin compression table " + maTable );
}
results.close();
conn.commit();
cst = conn.prepareCall
("CALL SYSCS_UTIL.SYSCS_BACKUP_DATABASE_AND_ENABLE_LOG_ARCHIVE_MODE(?, ?)");
cst.setString(1, backupdirectory);
cst.setInt(2, 1);
cst.execute();
cst.close();
System.out.println("backed up database to "+backupdirectory);
cst.close();
System.out.println("compressed database to " + nom);
}
catch (SQLException sqlExcept)
{
sqlExcept.printStackTrace();
}
}
} |
Partager