java derby RestoreFrom ไม่ทำอะไรเลย

ฉันยังใหม่กับฟอรัมนี้ (โพสต์แรก) แต่ฉันเคยท่องเว็บหลายครั้งเพื่อค้นหาเคล็ดลับและตัวอย่างที่เป็นประโยชน์และวิธีแก้ไขปัญหาของฉัน

ก่อนที่จะโพสต์ ฉันได้ค้นหาทั่วทั้งเว็บเกี่ยวกับคำสั่งฐานข้อมูลดาร์บี้ "restoreFrom" และฉันก็อ่านผู้ดูแลระบบดาร์บี้ คู่มืออ้างอิงด้วย

ฉันประสบความสำเร็จในการใช้โปรแกรมในการสร้าง สำรองข้อมูล และตรวจสอบขั้นตอน intergrity derby เชื่อมต่อ ยกเลิกการเชื่อมต่อเซิร์ฟเวอร์และฐานข้อมูล ฯลฯ ... แต่ไม่มีวิธีกู้คืนบางสิ่งด้วยขั้นตอนในตัว !!!

นี่คือรหัสที่มีปัญหา : มีปัญหา ? ไม่มากนักเพราะมันไม่มีข้อผิดพลาดใด ๆ ...

try {

    Class.forName("org.apache.derby.jdbc.ClientDriver");
    java.util.Properties props = new java.util.Properties();

    String backup = "." + File.separator + "backup" + File.separator
            + "dbcli";
    System.out.println(backup);

    String nsURL = "jdbc:derby://localhost:1527/dbcli;restoreFrom="
            + backup;
    props.setProperty("user", "root");
    props.setProperty("password", "root");

    dbConnection = DriverManager.getConnection(nsURL, props);
    dbConnection.commit();
    System.out.println("commit");

} catch (SQLException ex) {
    isConnected = false;
    Logger.getLogger(Snapshot.class.getName()).log(Level.SEVERE, null,
            ex);
    System.out.println(isConnected);
} catch (ClassNotFoundException ex) {
    Logger.getLogger(Snapshot.class.getName()).log(Level.SEVERE, null,
            ex);
}

มันไม่ส่งคืนข้อผิดพลาด แต่ฐานข้อมูลจะไม่ถูกกู้คืน แม้ว่าจะมีพาธแบบเต็มไปยังไดเร็กทอรีสำรอง...

ฉันค้นหามาหลายวันแล้ว ความช่วยเหลือใด ๆ จะดีมาก !!!

ขอแสดงความนับถือ ขอขอบคุณที่อ่านโพสต์มือใหม่ Java นี้... :-)

แก้ไข: ปัญหาคือการปรากฏตัวของโฟลเดอร์ .SVN .... ฉันโง่มาก .... :-) ขอบคุณสำหรับความช่วยเหลือและชีวิตที่ยาวนานใน STACKOVERFLOW !!!


person neuronsoverflow    schedule 17.06.2012    source แหล่งที่มา
comment
คุณแก้ปัญหาของคุณได้อย่างไร? ฉันมีสิ่งเดียวกันนี้เกิดขึ้นกับ Java DB ที่ฝังอยู่   -  person Igor    schedule 12.03.2013
comment
BTW ฉันไม่พบโฟลเดอร์ .SVN ที่นี่   -  person Igor    schedule 12.03.2013


คำตอบ (2)


ฉันมีปัญหาเดียวกันและแก้ไขได้โดยปิดฐานข้อมูลก่อนและหลังจากกู้คืนแล้ว ตัวอย่างเช่น:

    String nsURL1 = "jdbc:derby://localhost:1527/dbcli;shutdown=true";
    String nsURL2 = "jdbc:derby://localhost:1527/dbcli;restoreFrom="+ backup;
    props.setProperty("user", "root");
    props.setProperty("password", "root");

    DriverManager.getConnection(nsURL1, props);
    dbConnection = DriverManager.getConnection(nsURL2, props);

และใช้การลองจับ

person Pap Kostis    schedule 28.08.2013
comment
ตาม OP พบว่า ppoblem กลายเป็นไฟล์ svn ที่ซ่อนอยู่ ดังนั้นฉันคิดว่าโค้ดของ exaju ทำงานได้ดีจริง ๆ ด้วยตัวมันเอง - person ılǝ; 28.08.2013

คุณควรฝึกการสำรองและกู้คืนการประมวลผลโดยใช้ "ij" ก่อน จากนั้นจึงลองทำให้เป็นอัตโนมัติในโปรแกรม ขั้นตอนต่อไปที่ควรลองทำคือสำรองข้อมูล/กู้คืนโดยใช้ไดร์เวอร์แบบฝัง แทนที่จะใช้ไดร์เวอร์ไคลเอนต์/เซิร์ฟเวอร์ เช่นเดียวกับไดรเวอร์ไคลเอนต์/เซิร์ฟเวอร์ เป็นไปได้ว่าข้อความแสดงข้อผิดพลาดที่เกี่ยวข้องกับการสำรองข้อมูลอยู่ในไดเร็กทอรีบันทึกของเซิร์ฟเวอร์ใน ไฟล์ derby.log จากนั้นเมื่อคุณจัดการทุกอย่างเรียบร้อยแล้วด้วยการกำหนดค่าที่ง่ายขึ้น คุณจะสามารถดำเนินการสำรองข้อมูล/กู้คืนได้โดยอัตโนมัติโดยใช้ไดรเวอร์ไคลเอ็นต์/เซิร์ฟเวอร์

person Bryan Pendleton    schedule 18.06.2012
comment
ขอบคุณสำหรับคำแนะนำ. คุณพูดถูกแล้วขั้นตอนต่อไปคือการรื้อฟื้นปัญหานี้ ฉันทดสอบด้วย ij ได้สำเร็จและเกิดข้อผิดพลาดโดยโฟลเดอร์ .svn .... สองสัปดาห์ก่อนที่จะมีโฟลเดอร์นี้ และไม่มีข้อผิดพลาดของ Java ... ดังนั้น คุณสามารถใช้ส่วนหนึ่งของโค้ดด้านบนได้หากต้องการ ได้ผล... ขอบคุณสำหรับเวลาและความช่วยเหลือของคุณ... ขอแสดงความนับถือ - person neuronsoverflow; 18.06.2012