View Full Version : سوال: بک آپ گرفتن و ریکاوری کردن SQL Server در جاوا
Amin1991-2012
جمعه 28 شهریور 1393, 13:12 عصر
سلام دوستان
من یه برنامه تقریبا حسابداری مانند، بازبان جاوا و IDE نت بینز ، واسه بابام نوشتم.تو این پروژه که اولین پروژمم هست:لبخند: از دیتا بیس SQL Server استفاده کردم.الان پروژم تموم شده و میخوام بک آپ گیری و ریستور اتوماتیک رو واسه برنامم تعبیه کنم.اما اصلا نمیدونم باید چیکار کنم، هرچیم تو گوگل سرچ کردم چیزی دستگیرم نشد.
اساتید و دوستای گلم، کمکم کنید؛ کلا بگید باید چیکار کنم و اگه یه مثال باکد واسم بزنید واقعا ممنون میشم.
تشکر دوستان.
Tiyana
جمعه 28 شهریور 1393, 19:28 عصر
این کار رو میتونی با اجرای دستورات command توی جاوا انجام بدی یعنی بیای دستور restore یا backup رو تو یه string یا لیستی از string بریزی و بعد اونا رو با متد command() اجرا کنی مثلا:
public class ProcessBuilderDemo {
public static void main(String[] args) {
// create a new list of arguments for our process
List list = new ArrayList();
list.add("notepad.exe");
// create the process builder
ProcessBuilder pb = new ProcessBuilder(list);
// get the command list
System.out.println(""+pb.command());
}
Amin1991-2012
جمعه 28 شهریور 1393, 22:48 عصر
این کار رو میتونی با اجرای دستورات command توی جاوا انجام بدی یعنی بیای دستور restore یا backup رو تو یه string یا لیستی از string بریزی و بعد اونا رو با متد command() اجرا کنی مثلا:
public class ProcessBuilderDemo {
public static void main(String[] args) {
// create a new list of arguments for our process
List list = new ArrayList();
list.add("notepad.exe");
// create the process builder
ProcessBuilder pb = new ProcessBuilder(list);
// get the command list
System.out.println(""+pb.command());
}
ممنون از توجه و جوابتون
خب الان command رو متوجه شدم.حالا چجوری بایددستورات restore یا backup رو بنویسم؟کلا باید چجوری restore یا backup بگیرم!؟
ببخشید سوالم مبتدیانس!بالاخره باید یاد بگیرم دیگه!!!:لبخند:
پیشاپیش از توجه و صبروحوصلتون تشکر میکنم.
Tiyana
شنبه 29 شهریور 1393, 17:18 عصر
لینک زیرو نگاه کن دستورات backup و restore رو گفته البته من خودم اینا رو تا حالا امتحان نکردم...
http://www.howtogeek.com/50295/backup-your-sql-server-database-from-the-command-line/
http://www.mssqltips.com/sqlservertutorial/20/sql-server-backup-database-command/
Amin1991-2012
جمعه 07 آذر 1393, 14:51 عصر
سلام دوستان
اینم جواب سوالم:
import java.io. *;
import java.text.SimpleDateFormat;
import javax.servlet. *;
the import javax.servlet.http. *;
import java.sql. *;
/ / ---------------------------------
/ / Java mssql database backup and restore
/ / ---------------------------------
public class SqlBak extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet
{
static final long serialVersionUID = 1L;
the public SqlBak () {super ();}
/ / ----------------------------------
/ / POST request
/ / ----------------------------------
protected void doPost (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
doGet (request, response);
}
/ / ----------------------------------
/ / Get request
/ / ----------------------------------
protected void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
Connection conn = null;
try
{
Class.forName ("com.microsoft.sqlserver.jdbc.SQLServerDriver"). NewInstance ();
String url = "jdbc: sqlserver :/ / localhost: 1433; databaseName = db_test; user = sa; password = 123";
conn = DriverManager.getConnection (url);
/ / ----------------------
/ / Database backup
/ / Parameters:
/ / Save path
/ / Name of the database you want to back up
/ / Database connection object
/ / Returns: Backup Name
/ / ----------------------
/ / String bkname = bkData ("C: \ \", "db_test", conn);
/ / Response.getWriter (). Print ("back name:" + bkname) ;/ / output name for the backup
/ / ----------------------
/ / Restore the database
/ / Parameters:
/ / Backup file save path
/ / Backup file name
/ / Name of the database you want to restore
/ / Database connection object
/ / Returns: true | false
/ / ----------------------
/ / Boolean result = hfData ("C: \ \", "20091118104911.bak", "db_test", conn);
/ / Response.getWriter () print ("result:" + result);
}
/ / Exception
catch (Exception e)
{
e.printStackTrace ();
}
/ / Release the connection
finally
{
try {conn.close ();} catch (Exception e) {}
}
}
/ / ----------------------------------
/ / Database backup
/ / Parameters:
/ / Save path
/ / Name of the database you want to back up
/ / Database connection object
/ / ----------------------------------
public static String bkData (String path, String db_name, Connection conn)
{
String bk_name = ""; / / To return to the backup name
/ / Disc name is correct
if (path.lastIndexOf, ("\ \") == -1) path + = "\ \";
/ / ------------------------
/ / With the database
/ / ------------------------
PreparedStatement stmt = null;
String sql = "";
try
{
String file = new SimpleDateFormat ("yyyyMMddHHmmss"). Format (new java.util.Date ()) + ". Bak";
sql = "backup database" + db_name + "to disk = '" + path + file + "' with format, name = 'full backup of" + db_name + "'";
stmt = conn.prepareStatement (sql);
stmt.executeUpdate ();
bk_name = file; / / return the file name
}
/ / Exception
catch (Exception e)
{
e.printStackTrace ();
}
/ / Set of states release
finally
{
try {stmt.close ();} catch (Exception e) {}
}
/ / Return
return bk_name;
}
/ / ----------------------------------
/ / Database Recovery
/ / Parameters:
/ / Backup file save path
/ / Backup file name
/ / Name of the database you want to restore
/ / Database connection object
/ / ----------------------------------
public static boolean hfData (String path, String bk_name, String db_name, Connection conn)
{
boolean result = false; / / To return to the backup name
/ / Disc name is correct
if (path.lastIndexOf, ("\ \") == -1) path + = "\ \";
/ / ------------------------
/ / With the database
/ / ------------------------
PreparedStatement stmt = null;
String sql = "";
try
{
sql = "alter database" + db_name + "set offline with rollback immediate;";
sql + = "restore database" + db_name + "from disk = '" + path + bk_name + "'";
sql + = "with replace"; / / solve the equipment has not been backed up database database tail of the log
sql + = "alter database" + db_name + "set onLine with rollback immediate;";
stmt = conn.prepareStatement (sql);
stmt.executeUpdate ();
result = true;
}
/ / Exception
catch (Exception e)
{
e.printStackTrace ();
}
/ / Database operations release
finally
{
try {stmt.close ();} catch (Exception e) {}
}
/ / Return
return result;
}
}
امیدوارم به درد دوستان بخوره.
موفق باشید.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.