GB2445367A - Method for validating system changes by use of a replicated system as a system testbed - Google Patents

Method for validating system changes by use of a replicated system as a system testbed Download PDF

Info

Publication number
GB2445367A
GB2445367A GB0516997A GB0516997A GB2445367A GB 2445367 A GB2445367 A GB 2445367A GB 0516997 A GB0516997 A GB 0516997A GB 0516997 A GB0516997 A GB 0516997A GB 2445367 A GB2445367 A GB 2445367A
Authority
GB
United Kingdom
Prior art keywords
database
primary
tables
network
changes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
GB0516997A
Other versions
GB0516997D0 (en
Inventor
Rajesh Kapur
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from CA002504070A external-priority patent/CA2504070C/en
Priority claimed from CA002506303A external-priority patent/CA2506303A1/en
Application filed by Individual filed Critical Individual
Publication of GB0516997D0 publication Critical patent/GB0516997D0/en
Publication of GB2445367A publication Critical patent/GB2445367A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated

Abstract

A method for validating system changes by use of a replicated system as a system testbed wherein said system contains document management system software and a system database containing reference data to point to the document data within the system filestore, during maintenance or validation requirement to the primary system, the secondary replicated system can be used as a test environment, the method comprising steps of: ```creating a replicated server containing the system in which the reference data in the system database points to the primary system filestore and the system database tables mirror the primary, except those tables, containing reference information that uniquely identifies the replicated system from the primary production system; ```determining that a insert, update, delete/overwrite command has been issued on tables within the primary system database; and ```transferring and recording the commands from the primary system to the mirrored database system tables of the replicated system.

Description

2445367
TITLE: METHOD FOR VALIDATING SYSTEM CHANGES BY USE OF A REPLICATED SYSTEM AS A SYSTEM TESTBED
METHOD FOR VALIDATING SYSTEM CHANGES BY USE OF A REPLICATED SYSTEM AS A SYSTEM TESTBED
Many large companies use document management software. The purpose of such software is to help companies keep track of large volumes of documents in an organized way, so that documents can be easily stored, found and retrieved.
In many cases, there will be more than one version of a particular document. Thus, version control is another aspect of most document management systems. Version control is an issue of particular importance in situations where different people are able to share documents and have shared access to the documents, including a shared right to independently modify the documents.
Documentum is a document management system that comprises of three different layers(or technologies) sitting on top of an operating system (server based) such as Unix or Windows 2000 server, a system database, and a filestore.
The layers comprise of a Documentum application server layer that sits on top of the database and serves Documentum client interfaces. The reference information (i.e. the information pointing to the physical document data) and supplementary document information (i.e. the attributes of the types of Documents stored) are stored in the database. The actual physical data is stored in a filestore on either the server, a Storage area network (SAN) or Filer pointed to by the server.
One example of a company in which a document management software system would be useful is an engineering company that has many versions of the same part. When a client orders that part the company has to find the correct part version.
The document management system typically includes a system database that is associated with a filestore. The filestore stores the actual document data, while the system database stores reference information that points to the document within the filestore. Also, the system database typically stores supplementary document information regarding each document.
2
As part of the management of a document management system the system database and filestore continue to grow in size. While this is a positive and desirable situation for the business as a whole, i.e. the company's data / Intellectual property is kept safe.
This poses large problems systems people who need to maintain, upgrade these vast systems. The problem posed is also complicated by the range of different technologies involved. The document management system having its own layers to manipulate the user entry and the separate stores of data namely the system database and the filestore which need to be maintained consistently. For example every company needs to maintain the availability of these large systems stretching for some large companies into the terabytes of data. Should one of these systems experience problems, such as a performance problem or require a hardware or a Documentum, or a database software patch there is currently no satisfactory way of handling .testing or validating these changes.
The changes can be tested on a test system but this system never mirrors a real live production system and Stress testing is seldom carried out (real load testing where sometimes the real problems of performance degradation are found).
Also documentum software databases need maintaining, tuning and effects of small changes need to be adequately studied. Often its required to carry these requirements out on live production systems this risks lack of validation and stress testing and considerable periods of problems, or downtime if the patch applied fixes one scenario but breaks another, or when a mistake gets made. This is unacceptable for most businesses, as some changes cannot be reverted.
With regards to major upgrades until very recently , most companies still preferred to completely write a new system and migrate the data across, some still do this, as the risk to their current system is so great. This invention does not cater for major upgrades, however, there it is advisable to sever the connection between the servers and use a copy of the filestore for the secondary system and use the approach as was presented by myself at the Documentum
3
Conference in Lisbon May 2004, "Upgrading to Documentum 5i using the Clean Build Toggle "Clone" Approach". This approach was born out of a real-time critical problem. The filestore SAN storage that the Documentum management system was pointing to was running out of space. It was found that because the San drive was associated with NT server (on which the companies' documentum system was based on at the time couldn't actually be extended). As the systems Architect and Database Administrator it was my job to come up with the solution. I did this by cleanly building the said system on a new server (with the help of hardware and network professionals).
In the approach a replicated server, (The replica containing the proprietary document management system software and the system database containing reference data to point to the document data wherein said document data is stored in a separate system filestore associated with a system database ) was built, and upgraded, and hence plurality of data was achieved but only at a point in time that allowed a switch or toggle to allow the new replicated server to become the production system.
In this procedure the data was copied from the primary filestore using a full backup /restore on the Thursday night to the secondary backup filestore. On Friday night the Primary production server was shutdown and incremental backup of the primary filestore and database export from the primary database taken and these applied to the secondary server. This step ensured the plurality of the data for the point in time when after testing a switch could be made. The approach forms one of the foundation stones of this Invention.
What is required is a method for validating changes that need to be applied to the system these could be software or hardware patches or minor upgrades. The invention envisages doing this safely with no risk by using a replicated system as a system testbed updated constantly using data from the Production system which is modified by users this enables users to experience only positive changes to the system documents being managed by a document management system whilst system professionals being able to monitor, validate ,add patches and small maintenance tasks before applying these to the production system.
4
On successful upgrade the systems could even be switched to allow the upgrade to take place on the primary system.
On unsuccessful upgrade the problem can be identified and fixed, the secondary system reverted to a previous state if possible, in any case the primary system is secured.
Accordingly, there is provided a method for validating system changes by use of a replicated system as a system testbed wherein said system contains document management system software and a system database which contains reference data to point to the document data within the system filestore, during mantainence or validation requirement to the primary system, the secondary replicated system can be used as a test environment, the method comprising steps of:
creating a replicated server containing the system in which the reference data in the system database points to the primary system filestore and the system database tables mirror the primary, except those tables, containing reference information that uniquely identifies the replicated system from the primary production system on the network fabric;
determining that a insert, update, delete/overwrite command has been issued on mirrored tables within the primary system database; and transferring and recording the commands from the primary system to the database system tables of the replicated system.
Preferably, the primary system is operably connected to a network fabric. Preferably, the secondary system is operably connected to a network fabric. Preferably, the primary system has information loaded onto it, and is based on the first server. Preferably, the secondary system has information loaded onto it, and is based on a second server.
Preferably, the first system and the second system is configured to allow a client computer operably connected to the network fabric to locate information owned by the first system and information owned by the second system.
Preferably, the second system replicates the first system. Preferably,
5
the system comprises a Document Management System residing on a server (Unix or Windows 2000 server) comprising of a filestore storing the actual document data and a system database storing reference information pointing to the documents within a filestore, supplementary information on the document, together with system specific information.
Preferably, the second system's system database is configured to mirror the information in that of the first system's system database less a portion of the data which allows the second system to be uniquely identified on the network fabric. Preferably, the filestore containing documents is connected to the network fabric. Preferably, the filestore is based on a Storage Area Network (SAN) or Filer connected to the network fabric.
Preferably, the primary system's server can be connected to the filestore. Preferably, the secondary system's server can be connected to the same system filestore it is appreciated that a separate filestore for the secondary system can also be used and this is comprehended by the Invention in this case the second filestore in this case would need to have incremental backups from the first filestore to be continuously applied to it throughout.
Preferably, the primary and secondary system share the same system filestore. Preferably, the primary and secondary system databases are linked through the network fabric.
Preferably, the method comprises of using Oracle Database software linking primary and secondary system databases on the network fabric by means of an Oracle database link command.
Preferably, in the case of a SQL Server database this link between primary and secondary system databases is by a means of a SQL server linked server command. Preferably, both the primary and secondary systems databases have the required access permissions to access, modify, insert or delete data in each other and are accessible to each other across the network fabric.
Preferably, the method comprises document data being added to the filestore and reference data modified within system tables in the
6
primary system database, and wherein the recording step comprises the step of recording reference data from all primary system tables, save those holding system specific data.
Preferably, the primary system, in response to a insert, update, delete command, inserts, updates,deletes reference data to each of the system tables affected for each particular transaction. Preferably, the recording step comprises recording the reference data using at least one database trigger. Preferably, the recording step comprises recording the reference data using three database triggers associated with each system table, excepting those tables, which allow the first system to be uniquely identified on the network fabric.
Preferably, the method comprises adding a first database trigger associated with recording the changes after an insert command on each table, adding a second database trigger associated with recording the changes after an update command on each table and adding a third database trigger associated with recording the changes after a delete command on each database table, excepting those tables that define the primary system on the network fabric.
Preferably, the method comprises performing identical changes, to that which can occur after an insert, update, delete command on each primary system database table and are recorded within the respective database trigger pertaining to that particular transaction to the identical replicated secondary system database table, by means of the salient SQL command contained within the three triggers on each of the primary database tables. It is appreciated that the transfer, of the changes, and the recording to the secondary systems transaction table could also be done by a second set of database triggers placed upon the set of access preservation tables or on a copy of the system table pertaining to each system table in which transactions are recorded for each of the primary system tables save those system tables that uniquely identify the primary system on the network and that this is also comprehended by this invention.
The transfer, and application of the identical SQL command made possible only by the primary and secondary database systems being linked through a database link on the network fabric. Preferably, the three triggers on each table in the primary database also record the
7
changes on update, insert, delete to access-preservation tables and a single transaction table for all changes on all tables.
Preferably, the single transaction table contains the group: the type of transaction (i.e. update, delete, Insert), the system table on which the transaction is performed, the primary key of the table, and a Date-timestamp. Preferably, the recording step comprises using at least one access-preservation table.Preferably, the recording step comprises using a set of three access preservation tables for each primary system table to be mirrored in the secondary's database tables.
Preferably, the method additionally comprises using a database stored procedure to apply the changes and transactions recorded in the access-preservation tables and transaction table, to the secondary system should the database link be severed for any reason including that of maintenance to the secondary system on a time based input parameter, once the database link is restored and user input is halted temporarily.
Preferably, a set of database procedures can be used in contingency the database link is severed for any reason to apply the changes and transactions recorded, in order, from the time the link was severed to the secondary system in order to synchronise the two systems once the database link is restored again, user input to be halted at this point until the procedures have finished running .
The system can be then be returned to the said automated transfer using the SQL command within the triggers on each table, with the user input recommenced. Preferably, the set comprises a first access-preservation table to receive reference data recorded from the insert transaction on each system table, a second access-preservation table to receive reference data recorded from the update transaction on each system table, and a third access preservation table to receive reference data recorded from the delete transaction on each system table. Preferably, the method comprises input restriction until the primary and secondary system databases are re-synchronised.
Preferably, the method comprises the contingency of applying the
8
changes through at least a single database procedure using the combination transaction table and access-preservation tables, in order to resynchronise the primary and secondary systems once the database link is restored. Preferably, the method, comprises using Documentum as the Document Management System for both the primary and secondary systems. Preferably the method comprises of using the primary system for the user community to store their documents. Preferably, the method comprises of using the secondary system as a testbed for changes which eventually need to be applied to the primary system. Preferably, the method comprises document data being added to the filestore and reference data modified within Documentum system tables in the primary Oracle system database, and wherein the recording step comprises the step of recording reference data from all primary system tables, save those holding server specific data. Preferably, the method requires the secondary system to be used as a testbed, for testing any changes before applying changes to the Primary system. Preferably, the secondary system can be also used as a standby backup system in case of failure of the primary system. Preferably, the primary and secondary systems can be interchanged by adding the database triggers and procedures to both primary and secondary system databases and disabling the triggers and procedures in the designated secondary system. Preferably, the system comprises a Documentum document management system, and wherein the method is carried out additionally it is appreciated that the secondary server be used as a "Standby" this is comprehended by this invention but is not the primary purpose. Preferably, the recording, inserting, updating, deleting and providing steps and standard database constructs are executed by the execution of Oracle database software code. Preferably, the recording, inserting, updating, deleting and providing steps and standard database constructs are executed by the execution of SQL Server database software code.
An Example of the invention will now be described in detail with reference to the accompanying drawing in which Figure 1 is a schematic diagram of a system testbed 100 according to a first embodiment of the invention that allows the invaluable validation and testing of changes due to applying software / hardware patches, maintenance work, and perhaps upgrades on a real-time replica of the system ( in this case of a Document management
9
system known as Documentum), without risking the live system. With the additional benefits that systems professional's can get users to thoroughly test, the additional benefit of being able to also stress test e.g. carry out real load testing, with little or no time pressure;
knowing that the primary system can be reverted to in case of failure due to changes.
A typical Documentum system database has a number of system tables that store reference information and supplementary document information. The Replicated server is set up using the approach presented at the Documentum Conference "Upgrading to Documentum 5i using the toggle "clone" method.
The primary system 101 is operably connected to a network fabric 103. The secondary system 102 is operably connected to a network fabric 103. The primary system 101 has information loaded onto it, and is based on the first server 104. The secondary system 102 has information loaded onto it, and is based on a second server 105. The first system 101 and the second system 102 are configured to allow a client computer operably connected to the network fabric 103 to locate information owned by the first system 101 and information owned by the second system 102. Preferably, the second system 102 replicates the first system 101. Preferably, the first and second systems 101 and 102 comprises a Document Management System residing on a server 104, 105 (Unix or Windows 2000 server); comprising of a filestore 110 storing the actual document data and a system database 108 , 109 storing reference information pointing to the documents within a filestore 110, supplementary information on the document, together with system specific information.
The second system's system database 109 is configured to mirror the information in that of the first system's system database 108 less a portion of the data which allows the second system 102 to be uniquely identified on the network fabric 103. The filestore 110 containing documents is connected to the network fabric 103. The filestore 110 is based on a Storage Area Network (SAN) or Filer connected to the network fabric 103. The primary system's server 104 can be connected to the filestore 110. Preferably, the secondary system's server 105 can be connected to the same system filestore 110 it is appreciated that a separate filestore for the secondary system 102 can also be used and this is comprehended by the Invention in this case the second filestore in this case would need to have incremental backups from the first filestore attached to the
10
primary system 101 to be continuously applied to it throughout. Preferably, the primary and secondary system 101 and 102 share the same system filestore. The primary and secondary system databases 108 and 109 are linked through the network fabric 103. Preferably, the method comprises of using Oracle Database software linking primary and secondary system databases 108 and 109 on the network fabric by means of an Oracle database link command. Preferably, in the case of a SQL Server database this link between primary and secondary system databases 108 and 109 is by a means of a SQL server linked server command. Both the primary and secondary systems databases 108 and 109 have the required access permissions to access, modify, insert or delete data in each other and are accessible to each other across the network fabric 103. According to the Invention the document data being added to the filestore 110 and reference data modified within system tables 112 in the primary system database 108, be recorded within the recording step which comprises the step of recording reference data from all primary system tables 112, save those holding system specific data. The primary system 101, in response to a insert, update, delete command, inserts, updates, deletes reference data to each of the system tables 112 affected for each particular transaction. The recording step comprises recording the reference data using at least one database trigger. The recording step comprises recording the reference data using three database triggers 111 associated with each system table 112 (Figure 1 shows an example situation upon a single system table 112 on primary and secondary who's transactions are recorded ), excepting those tables, which allow the first system 101 to be uniquely identified on the network fabric 103. The invention comprises adding a first database trigger 111 associated with recording the changes after an insert command on each table ,
adding a second database trigger 111 associated with recording the changes after an update command on each table and adding a third database trigger 111 associated with recording the changes after a delete command on each database table, excepting those tables 112 that define the primary system 101 on the network fabric. The invention comprises performing identical changes, to that which can occur after an insert, update, delete command on each primary system database table 112 and are recorded within the respective database trigger pertaining to that particular transaction to the identical replicated secondary system database table 112, by means n
of the salient SQL command contained within the three triggers 111 on each of the primary database tables 112. It is appreciated that the transfer, of the transactions to the corresponding secondary system table 112, and the recording to the secondary systems transaction table of the transactions carried out on each required primary system table 112 could instead be done by a second set of database triggers 111 placed upon the set of access preservation tables 114 (or a copy of each system table 112 concerned ) in which transactions recorded from the first set of database triggers 111 are stored save those system tables 112 that uniquely identify the primary system on the network and that this is also comprehended by this invention. The transfer, and application of the identical SQL commands made possible only by the primary and secondary database systems 108 and 109 being linked through a database link 118 on the network fabric. The three triggers on each table in the primary database also record the changes on update, insert, delete to access-preservation tables 114 and a single transaction tables 117 for all changes on all tables. Preferably, the single transaction tables 117 contains the group: the type of transaction (i.e. update, delete, insert), the system table on which the transaction is performed, the system on which the transaction is performed whether it be primary or secondary the primary key of the table, and a Date-timestamp. Preferably, the recording step comprises using at least one access-preservation table. Preferably, the recording step comprises using a set of three access preservation tables for each primary system table to be mirrored in the secondary's database tables. Preferably, the method additionally comprises using a database stored procedure 115 to apply the changes and transactions recorded in the access-preservation tables and transaction table, to the secondary system should the database link be severed for any reason including that of maintenance to the secondary system on a time based input parameter, once the database link is restored and user input is halted temporarily. Preferably, a set of database procedures 115 can be used in contingency the database link is severed for any reason to apply the changes and transactions recorded, in order, from the time the link was severed to the secondary system in order to synchronise the two systems once the database link is restored again, user input to be halted at this point until the procedures have finished running , then the system can be returned to the said automated transfer using the SQL command within the triggers on each table, with the user
12
input recommenced. Preferably, the set comprises a first access-preservation table to receive reference data recorded from the insert transaction on each system table, a second access-preservation table to receive reference data recorded from the update transaction on each system table, and a third access preservation table to receive reference data recorded from the delete transaction on each system table. The Invention requires input restriction until the primary and secondary system databases are re-synchronised. Preferably, the method comprises the contingency of applying the changes through at least a single database procedure using the combination transaction table and access-preservation tables, in order to re-synchronise the primary and secondary systems, once the database link is restored. Preferably, the Invention, comprises using Documentum as the Document Management System for both the primary and secondary system. Preferably the invention comprises of using the primary system for the user community to store their documents. Preferably, the invention comprises of using the secondary system as a testbed for changes which eventually need to be applied to the primary system. Preferably, the invention comprises document data being added to the filestore and reference data modified within Documentum system tables in the primary Oracle system database, and wherein the recording step comprises the step of recording reference data from all primary system tables, save those holding server specific data. Preferably, the invention requires the secondary system to be used as a testbed, for testing any changes before applying changes to the Primary system. Preferably, the secondary system can be also used as a standby backup system in case of failure of the primary system. Preferably, the primary and secondary systems can be interchanged by adding the database triggers and procedures to both primary and secondary system databases and disabling the triggers and procedures in the designated secondary system. Preferably, the system comprises a Documentum document management system. Preferably, the system comprises a Documentum document management system and wherein the invention is carried out additionally it is appreciated that the secondary server be used as a "Standby" this is comprehended by this invention but is not the primary purpose. The recording, inserting, updating, deleting and providing steps and standard database constructs are executed by the execution of database software code. Preferably, the recording, inserting, updating, deleting
13
and providing steps and standard database constructs are executed by the execution of Oracle database software code. Preferably, the recording, inserting, updating, deleting and providing steps and standard database constructs are executed by the execution of SQL Server database software code.
Prederably, the triggers are added to the relevant Documentum tables and they automatically fire to capture the salient information needed to apply a SQL command to keep two systems synchronised, where the secondary system is a replica of the first. This transfer is made possible by the setting up of a Database link between the primary and secondary database systems across the network fabric. In this case an Oracle Database link. Permissions to the user schema or database on the secondary system need to be granted to the primary system's schema or database, and visa versa in case of the secondary system taking over the role of the primary. Additionally, the database link could be set up using other databases of course using the relevant construct, in Sql Server for example the "linked server" construct.
Though the description of the invention relates mainly to an example within the Documentum Document Management system arena, most large document management systems of any stature have to have a similar metadata and filestore component.
Though the description of the invention relates mainly to an example within the Oracle database arena, most large database of any stature have to have similar constructs through common standards such as the SQL command language itself. Therefore this invention can be used with many different databases.
Below, there is shown sample code which can be extended to implement the invention the code is by no means complete but is sufficient to demonstrate the method. Code is given for Oracle only. One system table is taken dm_sysobject_r as example from the Documentum system though not all the columns are used for the example to merely show the concept of the three trigger a table system that is embodied by this invention. The concept is however explained.
The Invention can be embodied in a multi-operating system embodiment. The invention can be embodied in a multi-document management system embodiment. The invention can be implemented in a multi-database embodiment.
14
Oracle
Create Database link link_name Connect to username Identified by password Using sqlnet_string;
e.g.
Create Database link Secondary connect to secondary identified by secondary using 'backup_database'
It is appreciated that in the case of an Oracle delete trigger (a before or after) trigger can be used, as is comprehended by the invention.
Create or replace trigger keep_del_r_trigger before delete on dm_sysobject_r for each row Begin delete from dm_sysobject_r@backup_database where r_object_id =
:old.r_object_id
Insert into keep_r_table value
(:old.r_object_id,:old.r_versionJabel,:old.i_folder_id,:SYSDATE); Insert into transaction_table
('Delete' ,'dm_sysobject_r', :old. r_objectJd, SYSDATE);
EXCEPTION when others then RAISE;
END;
/
The first command of the above trigger shows the SQL command and the "after delete row" trigger on the primary database automatically deletes the row in the secondary table. The insert statement is necessary in case the link is severed which can happen from time to time in case of maintenance, or in case of failure. As the above Oracle code shows this can be used in order to preserve the data in access preservation tables and the transaction table. In this case instead of using the link to transfer the necessary commands; the access- preservation tables and transaction table are used instead at a later point by database procedures that can run in the
15
transactions in sequence to the Secondary Database, or visa versa.
According to the invention the triggers and procedures are "Enabled" in the designated Primary.
Create or replace trigger keep_ins_r_trigger after insert on dm_sysobject_r for each row
Begin insert into dm_sysobject_r@backup_database(:new. r object id,: new. r_version Jabel,: new. i_folderJd)
Insert into keep_r_table value
(:new.r_objectJd,:new.r_version Jabel,:new.iJolderJd:,SYSDATE); Insert into transaction_table
('Insert','dm_sysobject_r,,:new.r_object_id, SYSDATE);
EXCEPTION when others then RAISE;
END;
/
Notice the new values are used meaning the values after the insert or update of a row and these are subsequently used to apply changes to the secondary database.
Create or replace trigger keep_upd_r_trigger after update on dm_sysobject_r for each row Begin update dm_sysobject_r@backup_database set r_version_label = :new.r versionJabel, i_folderJd = :new. i folder id where r_objectJd = :new.r_objectJd,
Insert into keep_rjable value
(: new. r_object_id,: new. r_version Jabel,: new. i JolderJd:, SYSDATE); Insert into transactionjable
('Update','dm_sysobject_r',.old.r_objectJd, SYSDATE);
EXCEPTION
when others then
RAISE;
END;
16
/
In the case of the dm_sysobject_r table above an example has been given of how the three triggers record the transactions for that table. This ofcourse can be extended to every table within the system. A "before row delete" is used in the example, meaning the data the is about to be deleted is captured the :old values meaning whatever was there previously is always captured.
A "after row insert" and "after row update" is preferably used, meaning that the data values of the row that have been, inserted or updated are actually captured notice the new values inserted are always used. On a "before insert" old values do not exist. This ensures that all salient and/or relevant information is captured.
It will be appreciated that an "after row delete" and "before row update / insert" could also be used and are comprehended by the invention. In such a case, the old values are captured immediately upon the deletion and the new values upon update and insert.
An oracle database procedure or stored procedure is a piece of oracle execution code and carries out logical instructions. An oracle trigger is a piece of application code that can be applied to an oracle "table" (a storage unit like a filling cabinet) which when particular transactions are carried out on the table it fires automatically to execute the code within it.
17

Claims (33)

CLAIMS:
1. An apparatus for validating system changes, comprising: a primary system based on a first server; and a secondary system based on a second server, wherein the primary and secondary system are operable to be connected to a network.
2. The apparatus according to claim 1, wherein salient user information is loaded onto the primary system and information is loaded onto the secondary system.
3. The apparatus according to claim 1 or claim 2, wherein the same information is loaded onto the primary and secondary system such that the secondary system is operable to replicate the primary system.
4. The apparatus according to any one of claims 1 to 3, further comprising information location means operable to allow at least one client computer connected to the network fabric to locate first information owned by the primary system and second information owned by the secondary system.
5. The apparatus according to any one of claims 1 to 4, wherein at least one of the first server and the second server comprises a document management system.
6. The apparatus according to claim 5, wherein the document management system comprises at least one filestore operable to store document data.
7. The apparatus according to claim 5 or claim 6, wherein the document management system comprises a system database operable to store reference information pointing to the document data within the filestore.
8. The apparatus according to any one of claims 5 to 7, wherein the document management system comprises supplementary
18
information about the document data and system specific information.
9. The apparatus according to any one of claims 5 to 8, wherein the primary system and the secondary system share the same filestore.
10. The apparatus according to any one of claims 1 to 9, wherein the primary system comprises a primary database and the secondary system comprises a secondary database.
11. The apparatus according to claim 10, wherein the primary database and the secondary database comprise database tables.
12. The apparatus according to claim 10 or claim 11, wherein the primary database and the secondary database are linked using a database network communication layer.
13. The apparatus according to any one of claims 10 to 12, wherein the primary database and the secondary database are operable to transfer and record changes to the database tables.
14. A method for validating changes in a system using a replicated system as a system testbed wherein the system contains document management system software and a system database containing reference data to point to document data within a system filestore, the method comprising:
creating a replicated server containing a secondary system in which the reference data in the system database points to a primary system filestore and system database tables mirror the primary, excepting those tables, containing reference information that uniquely identifies the replicated system from the primary system on a network;
determining that a insert, update, delete/overwrite command has been issued on tables within the primary system database; and recording and transferring the commands from the primary system to the "mirrored" database system tables of the replicated system.
15. The method according to claim 14, further comprising:
19
connecting the system filestore containing documents to the network fabric;
basing the system filestore on a storage system; connecting the primary system's server to the system filestore; and connecting the secondary system's server to the same system filestore.
16. The method according to claim 14 or claim 15, further comprising:
using database software to link primary and secondary system databases on the network by means of a database link command;
using a network layer on the network; and giving the primary database and the secondary database the required access to transfer and record necessary changes to the tables.
17. The method according to claim 14 or claim 15, further comprising:
using Oracle database software to link primary and secondary system databases on the network by means of a database link command;
using a network layer on the network; and giving the primary database and the secondary database the required access to transfer and record necessary changes to the tables.
18. The method according to claim 16, further comprising:
using a sql server database to provide the link between primary and secondary system databases;
using a sql server network layer on the network by means of a linked server command; and giving both the primary and secondary server databases the required access to transfer and record the necessary changes to the database tables.
19. The method according to any one of claims 14 to 18, further comprising adding document data to the filestore and allowing reference data to be continually added, modified and deleted within
20
system tables in the primary system database by a user community.
20. The method according to any one of claims 14 to 19, further comprising recording reference data from all primary system tables, apart from the primary system tables holding specific data with regards to its definition as the primary system on the network.
21. The method according to any one of claims 14 to 20, further comprising: inserting, updating or deleting reference data in the primary system to each of the primary system tables in response to an insert, update or delete command; and recording the reference data using at least one database trigger.
22. The method according to any one of claims 14 to 21, further comprising recording the reference data using three database triggers associated with each system table, apart from those tables that allow the primary system to be uniquely identified on the network.
23. The method according to any one of claims 14 to 22, further comprising:
adding a first database trigger associated with further recording the changes after an insert command on each table to an access preservation table, combined transaction tables, with time of transaction;
adding a second database trigger associated with further recording the changes after an update command on each table to an access preservation table, combined transaction tables, with time of transaction; and adding a third database trigger associated with further recording the changes after a delete command on each database table to an access preservation table, combined transaction tables ,with time of transaction excepting those tables that define the primary system on the network fabric.
24. The method according to claim 22 or 23, further comprising performing identical changes, to that which occur after an insert, update, delete command on each primary system database table recorded and transferred within the respective database trigger upon
21
the identical replicated secondary system database table, primary and secondary transaction tables by means of the salient command contained within each of the three triggers placed on each of the primary database tables, save those that uniquely identify the primary and secondary database being linked through a database link on the network fabric.
25. The method according to claim 22 or 23, further comprising performing identical changes, to that which occur after an insert, update, delete command on each primary system database table recorded within the respective database trigger transferred and recorded at least one access preservation table, and transferred to the secondary system upon the identical replicated secondary system database table, primary and secondary transaction tables by means of the salient command contained within at least one trigger placed on the at least one access preservation table, save those that uniquely identify the primary and secondary database being linked through a database link on the network fabric.
26. The method according to claim 22 or 23, further comprising performing identical changes, to that which occur after an insert, update, delete command on each primary system database table recorded within the respective database trigger transferred and recorded a set of three access preservation tables per primary system table, and transferred to the secondary system upon the identical replicated secondary system database table, by means of the salient command contained within at least one trigger placed on each of the access preservation tables, save those that uniquely identify the primary and secondary database being linked through a database link on the network fabric.
27. The method according to any one of claims 14 to 26, further comprising using at least a single database procedure, in case of breakage of the network fabric or link.
28. The method according to any one of claims 14 to 27, further comprising using a set of database procedures that can be enabled for use to transfer and apply the changes to the secondary's database system using the access-preservation tables, and a single combined transaction table on primary and secondary for each valid
22
database system table, in the contingency the database link is severed for any reason, including planned maintenance to the secondary system, once user input is halted and the database link, network fabric is restored.
29. The method according to any one of claims 14 to 28, further comprising using the same document management system for both the primary system and secondary system.
30. The method according to any one of claims 14 to 30, further comprising:
using the primary system for the user community to store their documents;
using the secondary system as a testbed for changes which eventually need to be applied to the primary system; adding document data to the filestore on a storage area network and reference data modified within document management system tables in the primary system database; and recording reference data from all primary system tables, apart from those holding server specific data.
31. The method according to any one of claims 14 to 30, further comprising using the secondary system as a testbed, for testing any changes before applying changes to the primary system.
32. The method according to any one of claims 18 to 31, further comprising using the secondary system as a testbed, for testing any changes before applying changes to the primary system.
3 3. The method according to any one of claims 18 to 31, further comprising interchanging primary and secondary systems on successful upgrade by adding the
31
5
database triggers and procedures to both primaiy and secondary system' databases and disabling the triggers and procedures in the designated secondary system.
34 A computer readable medium embodying database software code means for executing recording, inserting and providing steps as claimed according to any one of claims 11 to
33.
3 2
32. The method according to any one of claims 14 to 30, further comprising using the secondary system as a standby backup system in case of failure of the primary system.
33. The method according to any one of claims 14 to 32, further comprising interchanging primary and secondary systems by adding the database triggers and procedures to both primary and secondary system databases and disabling the triggers and procedures in the designated secondary system.
34. The method according to any one of claims 20 to 30, wherein the recording, inserting, transferring and providing steps are executed by database code.
23
35. A system to implement a validated testbed for document management system comprising the recording, inserting, transferring of transactions from the designated primary system to the designated secondary system by means of at least one database trigger, at least one access preservation table, at least one combined transaction table and at least one database procedure and finally a link across the network fabric the providing steps executed by database code.
24
Amendments to the claims have been filed as follows
1. An apparatus for aiding real-time validation of system changes, comprising: a primary system based on a first server; and a secondary system based on a second server, wherein the primary and secondary system are operable to be connected to a network fabric and attached to each other; and wherein business information loaded onto the primaiy system initially is replicated onto the secondary system whilst the primary and secondary systems are unattached; and further business information entered, altered, deleted and overwritten by the user base at real-time is continuously transferred from the primary system to the attached secondary system such that the secondary system is operable to achieve continuous synchronization and at real-time replicate the primary system; and wherein the secondary system can be resynchronized to changes to business information upon the primary system after any breakage of the link for any reason using at least one transaction table and at least one database procedure once the secondary system is reattached such that the secondary system continues to be continuously synchronized; and wherein the secondary system on successful upgrade validation is reattached and interchanged to become the primary system,
2. The apparatus according to claim 1, further comprising information location means operable to allow at least one client computer connected to the said network fabric to locate first information owned by the primaiy system and second information owned by the secondary system.
25
The apparatus according to any one of claims 1 to 2, wherein at least one of the first server and the second server comprises a document management system.
The apparatus according to claim 3, wherein the document management system comprises at least one filestore operable to store document data.
The apparatus according to claim 3 or claim 4, wherein the document management system comprises a system database operable to store reference information pointing to the document data within the filestore.
The apparatus according to any one of claims 3 to 5, wherein the document management system comprises supplementary information about the document data and system specific information.
The apparatus according to any one of claims 3 to 6, wherein the primary system and the secondary system share the same main filestore.
The apparatus according to any one of claims 1 to 7, wherein the primary system comprises a primary database and the secondary system comprises a secondary database.
The apparatus according to claim 8, wherein the primary database and the secondary database comprise database tables.
The apparatus according to claim 7 and claim 9, wherein the primary database and the secondary database are linked using a database network communication layer.
The apparatus according to any one of claims 8 to 10, wherein the primaiy database and the secondary database are each operable to record and transfer changes to the database tables.
12. The apparatus as claimed in claim 1 wherein said breakage of the link includes any breakage during planned maintenance or upgrade to the secondary system, whilst the primary system continues to receive user input.
13. The apparatus according to any one of the claims 1 to 12, wherein the primary and secondary systems are interchangeable for any purpose.
14. The apparatus according to any of the claims 1 to 13, wherein the primary and secondary systems are interchangeable after successful upgrade of the secondary and ^synchronization using the at least one database procedure and transaction table of the secondary system to the primary system.
15. A content management network-attached system according to claim 1 with native integration of a content management system and a storage system comprising:
a storage system for storing content data, content metadata, and business data.
16. The content management network-attached system of claim 1 further comprising: a native unified replication system which automatically synchronizes replication of the content data, the content metadata, and business data.
17. The content management network-attached system according to claim 1 further comprising:
a native unified replication system which resynchronizes replication of the content data, the content metadata, and business data, on restoration of network attachment in the case of breakage of the attachment to the network attached system.
18. A method for aiding users, system professionals valid^e safely system changes during an upgrade by use of a replicated secondary system as a system testbed wherein the primary system contains document management system software
further comprising a system database containing reference data to point to document data within a system filestore, the method comprising:
creating a replicated server containing a secondary system replicating the primary in which the reference data in the secondary system database points to the primary system filestore and system database tables in the secondary system mirror the database tables on the primary system based on a primary server, excepting those tables, containing reference information that uniquely identifies the secondary system from the primary system on a network;
determining that a insert, update, delete/overwrite command has been issued on tables within the primary system database; and transferring and recording the issued commands upon the primary system' database to the mirrored database system tables of the secondary system;
detaching and carrying out the upgrade and validation on the secondary system whilst allowing input upon the primary system to continue; and on successful validation, re-attachment and resynchronization the secondary system to the primary system interchanging the secondary system to become the new primary system.
The method according to claim 18, further comprising:
connecting the system filestore containing documents to the said network ;
basing the system filestore on a storage system;
connecting the primary system's server to the system filestore; and connecting the secondary system's server to the same system filestore.
a*
20. The method according to claim 18 or claim 19, further comprising:
using database software to link primaiy and secondary system databases on the said network by means of a database link command;
using a network layer on the said network; and allowing the primary database and the secondary database the required access to transfer and record necessaiy changes to both the primaiy and secondary' database tables.
21. The method according to claim 20, further comprising:
using a server database to provide the link between primary and secondary system databases;
using a server network layer on the said network by means of a linked server command or commonly known as a database link; and giving both the primary and secondary databases the required access to transfer and record the necessary changes to the database tables.
22. The method according to any one of claims 18 to 21, further comprising adding documents to the filestore and allowing reference data to be continually added, modified and deleted within system tables ia the primaiy system database by a user community.
23. The method according to any one of claims 18 to 22, further comprising recording reference data from all primary system tables, apart from the primary system tables holding specific data with regards to its definition as the primary system on the said network.
24. The method according to any one of claims 18 to 23, further comprising:
inserting, updating or deleting reference data in the primary system to each of the primaiy system tables in response to an insert, update or delete command; and recording the reference data using at least one database trigger.
25. The method according to any one of claims 18 to 23, further comprising recording the reference data using three database triggers associated with each system table, apart from those tables that allow the primary system to be uniquely identified on the said network.
26. The method according to any one of claims 18 to 23, further comprising:
adding a first database trigger associated with recording the changes after an insert command on each table;
adding a second database trigger associated with recording the changes after an update command on each table; and adding a third database trigger associated with recording the changes after a delete command on each database table, excepting those tables that define the primary system on the said network.
27. The method according to claim 25 or 26, further comprising performing identical changes, to that which occur after an insert, update, delete command on each primary system database table recorded within the respective secondary system database table, by means of the salient command contained within each of the three triggers placed on each of the primaiy database tables, save those that uniquely identify the primary and secondaiy database being linked through the database link on the said network.
28. The method according to claim 25 or claim 26, further comprising performing identical changes to that which occur after an insert, update or delete command on each primaiy system database table recorded within respective database trigger and access preservation tables and transferred to the secondary system by means of the salient command contained within a second set of triggers that reside on the access preservation
SO
tables, the primary and secondary"' tables being Linked through the database link on the said network.
29. The method according to any one of claims 18 to 27, further comprising using at least a single database procedure,
30. The method according to any one of claims 18 to 27, further comprising using a set of database procedures that can be enabled for use to transfer and apply the changes to the secondary's database system using the primary'access-preservation tables, and a single combined transaction table for each valid database system table, in the contingency the database link is severed for any reason, including planned maintenance to the secondary system, this once user input is halted and the database link is restored.
31. The method according to any one of claims 18 to 30, further comprising:
using the primaiy system for the user community to store their documents;
using the secondary system as a testbed for changes which eventually need to be applied to the primary system;
adding document data to the filestore on a storage area network and reference data modified within document management system tables in the primary system database; and recording reference data from all primary system tables, apart from those holding server specific data.
GB0516997A 2005-04-14 2005-08-18 Method for validating system changes by use of a replicated system as a system testbed Withdrawn GB2445367A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CA002504070A CA2504070C (en) 2005-04-14 2005-04-14 Method for preserving access to deleted and overwritten documents
CA002506303A CA2506303A1 (en) 2005-04-14 2005-05-04 Method for validating system changes safely by use of a replicated system as a system testbed

Publications (2)

Publication Number Publication Date
GB0516997D0 GB0516997D0 (en) 2005-09-28
GB2445367A true GB2445367A (en) 2008-07-09

Family

ID=37086551

Family Applications (1)

Application Number Title Priority Date Filing Date
GB0516997A Withdrawn GB2445367A (en) 2005-04-14 2005-08-18 Method for validating system changes by use of a replicated system as a system testbed

Country Status (4)

Country Link
EP (1) EP1869553A1 (en)
AU (1) AU2005330533A1 (en)
GB (1) GB2445367A (en)
WO (1) WO2006108260A1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8984326B2 (en) 2007-10-31 2015-03-17 Hewlett-Packard Development Company, L.P. Testing disaster recovery elements
US8700574B2 (en) 2008-03-21 2014-04-15 Omnitracs, Llc Pourover journaling
CN102841897B (en) * 2011-06-23 2016-03-02 阿里巴巴集团控股有限公司 A kind of method, Apparatus and system realizing incremental data and extract

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0678812A1 (en) * 1994-04-20 1995-10-25 Microsoft Corporation Replication verification
US20030009752A1 (en) * 2001-07-03 2003-01-09 Arvind Gupta Automated content and software distribution system
US20030093712A1 (en) * 2001-11-13 2003-05-15 Cepulis Darren J. Adapter-based recovery server option
US6820099B1 (en) * 2001-04-13 2004-11-16 Lsi Logic Corporation Instantaneous data updating using snapshot volumes

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8121978B2 (en) * 2002-11-15 2012-02-21 Sybase, Inc. Database system providing improved methods for data replication
US7213022B2 (en) * 2004-04-29 2007-05-01 Filenet Corporation Enterprise content management network-attached system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0678812A1 (en) * 1994-04-20 1995-10-25 Microsoft Corporation Replication verification
US6820099B1 (en) * 2001-04-13 2004-11-16 Lsi Logic Corporation Instantaneous data updating using snapshot volumes
US20030009752A1 (en) * 2001-07-03 2003-01-09 Arvind Gupta Automated content and software distribution system
US20030093712A1 (en) * 2001-11-13 2003-05-15 Cepulis Darren J. Adapter-based recovery server option

Also Published As

Publication number Publication date
AU2005330533A1 (en) 2006-10-19
EP1869553A1 (en) 2007-12-26
GB0516997D0 (en) 2005-09-28
WO2006108260A1 (en) 2006-10-19

Similar Documents

Publication Publication Date Title
US20060253500A1 (en) Method for validating system changes by use of a replicated system as a system testbed
US20060235905A1 (en) Method and system for preserving real-time access to a system in case of a disaster
US5778390A (en) Method and systems for creating duplicating, and archiving database files
US10891067B2 (en) Fast migration of metadata
US20060235904A1 (en) Method for preserving access to system in case of disaster
US10120767B2 (en) System, method, and computer program product for creating a virtual database
US10572551B2 (en) Application containers in container databases
CN103119590B (en) The method and system of integrity is managed in distributed data base
CA2626227C (en) Apparatus and method for creating a real time database replica
US20060129618A1 (en) Method and a computer system for synchronising backups of objects and of meta data about the objects
US8046329B2 (en) Incremental backup of database for non-archive logged servers
EP1675007B1 (en) Fault management system in multistage copy configuration
US7693889B1 (en) Automated backup and recovery for content repository
US7725428B1 (en) System and method for restoring a database in a distributed database system
US20080263079A1 (en) Data recovery in an enterprise data storage system
GB2445367A (en) Method for validating system changes by use of a replicated system as a system testbed
CA2506100C (en) Method for preserving access to system in case of disaster
GB2445584A (en) Database backup and retrieval using transaction records and a replicated data store
Dell
JP4431022B2 (en) Computer system and control method thereof
GB2425376A (en) Method and system for producing a data backup system of a primary system in a document management system
CA2545532A1 (en) Method and system for providing network attached system for disaster recovery and upgrade testing
CA2531714C (en) A method and system for preserving access to a system in case of a disaster
Manouvrier et al. Microservice disaster crash recovery: a weak global referential integrity management
Malcher et al. RMAN Restore and Recovery

Legal Events

Date Code Title Description
711Q Appeals lodged - section 117
APTC Appeals to the court
APTC Appeals to the court

Free format text: APPEAL LODGED; APPEAL AGAINST THE DECISION OF THE COMPTROLLER DATED 5 FEBRUARY 2009 LODGED WITH THEPATENTS COURT ON 13 FEBRUARY 2009 (ACTION NO. CH2009APP0083)

APTC Appeals to the court

Free format text: APPEAL DISMISSED

WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)