1. Trang chủ
  2. » Công Nghệ Thông Tin

Unix Backup and Recovery phần 8 pps

73 316 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 73
Dung lượng 888,23 KB

Nội dung

setup. Also, if additional EBFs (Sybase patches) or upgrades were installed, they will have to be reapplied. It is much quicker to restore from a single backup of these directories. Restoring from a Hot Backup Sybase reduces the time it takes to perform a hot backup by saving only the pages that contain data. It also saves them exactly as they are on the devices and in the order they are found in the database. Because of this, the recovery requires that the database be re-created with exactly the same layout it had before the recovery. In other words, if the database was created with a 40-MB default segment and a 10-MB log segment, and at a later point, an additional 40-MB was added to the default segment, then the database needs to be re-created with a 40-MB default segment and 10-MB log segment and then altered to add the last 40-MB. Otherwise, when the load of the hot backup occurs, Sybase will do unpredictable things with the allocation. In the previous example, these commands would be create database mydb on mydefseg = 40, mydefseg = 40 log on mylogseg = 10 alter database mydb on mydefseg = 40 Once the database creation is complete, the full dump of the database needs to be applied using the load command. The load command has all of the same parameters as the dump command. It needs to know what to restore, from where to get it, and how to get it from there. To restore from a tape, use exactly the same parameters as were used to create the tapes. First, restore the full database backup to the database. This will give you a base point against which to restore all the transaction logs. Example 16-3 contains a sample load of a full database dump. Example 16-3. Sample load database Command 1> load database mydb from '/sybase/backups/mydb.990312.bck' 2> go Backup Server session id is: 26. Use this value when executing the 'sp_volchanged' system stored procedure after fulfilling any volume change request from the Backup Server. Backup Server: 6.28.1.1: Dumpfile name 'mydb9909106EF4 ' section number 0001 mounted on disk file '/sybase/backups/mydb.990312.bck' Backup Server: 4.58.1.1: Database mydb: 17926 kilobytes LOADed. Backup Server: 4.58.1.1: Database mydb: 19462 kilobytes LOADed. Backup Server: 4.58.1.1: Database mydb: 19470 kilobytes LOADed. Backup Server: 3.42.1.1: LOAD is complete (database mydb). Use the ONLINE DATABASE command to bring this database online; SQL Server will not bring it online automatically. Page 557 If there are no transaction logs for this database, then as the command output says, this database could be brought online. Enter the online database baddbname command to have Sybase bring it up and make it available for use. If there are transaction logs, they will need to be applied to bring the database up to the most current point possible. Use the load transaction command to apply a transaction log to the database. To restore the transaction logs for the database mydb in the preceding dump example, enter the command shown in Example 16-4. Example 16-4. Sample load transaction Command 1> load transaction mydb from '/sybase/backups/mydb.tlogdmp' 2> go Backup Server session id is: 28. Use this value when executing the 'sp_volchanged' system stored procedure after fulfilling any volume change request from the Backup Server. Backup Server: 6.28.1.1: Dumpfile name 'mydb9909106F49 ' section number 0001 mounted on disk file '/sybase/backups/mydb.tlogdmp' Backup Server: 4.58.1.1: Database mydb: 24 kilobytes LOADed. Backup Server: 3.42.1.1: LOAD is complete (database mydb). Use the ONLINE DATABASE command to bring this database online; SQL Server will not bring it online automatically. Repeat the transaction logs loads until there are no more transaction logs to apply. When they are done, the database has been restored completely and should be brought online using the online database baddbname command. Because of a quirk in some versions of Sybase on some platforms, the preceding loads might not work for using the physical devices. To get by this "feature," you can use logical devices instead. The only differences in the examples would be changing the physical device to a logical device after the logical dump device is created. For more information on how to create logical dump devices, see the definition of dump devices under "The DBA's View," near the beginning of this chapter. As of Sybase Version 11.92, a database can now be restored up to a specific point in time as long as it is covered by a transaction log dump. To specify the time to which the database should be restored, use the new until_time parameter. This parameter takes a single value of a time and date in the default format for the data server. For example, to restore a database up to April 1, 1999, at 12:34:32:650 A.M., first apply the full database dump, then apply all transaction log dumps up to the one that contains the stop time. With this dump, add until_time, like this: load transaction mydb from '/sybase/backups/mydb.tlogdmp' with until_time = 'April 1, 1999 at 12:34:32:650AM' Page 558 Once the database has been restored and brought online, it is important to check all the major objects in the system and validate the data. Run a number of queries on the database tables to make sure the data is as it should be and then check the consistency of the database structure using the dbcc checkalloc. When all of these checks have been passed, do a full database dump to make sure a consistent recent backup is on hand in case additional problems arise. Also, it will save time because none of the transaction logs restored earlier will need to be restored again. Using the Recovery Procedure Recovering from a database problem starts with diagnosing exactly what is wrong with the database. Maybe isql will not connect to the data server, maybe the database is marked suspect, or maybe an error message in the error log occurs when the data server is started. In all of these cases and others, something has gone wrong where it had gone right before. Fortunately, with the proper backups, many of these problems can be fixed and the database restored to full working order. Sybase has many parts that are interrelated, but like Sherlock Holmes investigating a mystery, if we eliminate from consideration the items that are working correctly, only the error-causing parts will remain. This section provides step-by-step directions to diagnosing and repairing all of these error-causing parts, and when completed, will leave a fully functional data server. A flowchart that appears at the beginning of these steps (Figure 16-1) should help you in the recovery process. Each item in the chart is numbered the same as the steps and procedures that follow. The electronic version of this procedure* contains a flowchart that is an HTML image map. Each decision or action box in the flowchart is a hyperlink to the appropriate section of the printed procedure. For more detailed information about individual steps, please consult Sybase's System Administration documentation, especially the ''Backup and Recovery" chapter. To begin the investigation, start the data server as it is normally started. If problems show up in the Sybase error log file or the data server does not come up, start with Step 1 to begin the recovery/diagnosis procedure. Step 1: Runfile OK? Sybase starts up by using the startserver program. This program takes an additional parameter -f runfilename that is the file containing the server startup command and parameters. If this file is missing or the path given for the runfile is * It is available at http://www.backupcentral.com and on the CD that comes with this book. Page 559 Figure 16-1. A Sybase recovery flowchart Page 560 incorrect, the startserver command will return an error Cannot execute file runfilename. If the path is incorrect for the file, correct it and start again. If you are unsure of the path being used, change your directory to the location of the runfile, then run the command, but specify only the runfile name. Sybase then will try looking in your current default directory for the file. If the runfile is OK, proceed to Step 3. If not, go to Step 2. Step 2: Restore or Re-create Runfile If the file is missing, it can be re-created fairly easily. There is nothing magical about this file. It contains the command and parameters to start the server. Example 16-5 contains a sample runfile for a Unix system. Example 16-5. Sample Runfile #!/bin/sh # # SQL Server Information: # Name: SYB_TITANIA # Master device /sybdata/master.dbf # Master device size: 10752 # Errorlog: /opt/sybase/logs/SYB_MYDB.errorlog # Interfaces: /opt/sybase # /opt/sybase/bin/dataserver -d/sybdata/master.dbf -sSYB_MYDB \ -e/opt/sybase/logs/SYB_MYDB.errorlog -i/opt/sybase As seen in the comment lines, dataserver takes a number of different parameters. Again, check Sybase's documentation for your OS for more details. The most important parameter shown is the master device. The master device is the primary device used by the master database, and the master database is one of the keystones of a Sybase server. The master database contains a majority of the information about all the other databases, devices, and other data server objects, including the location of the master device. The -s dataservername is how the data server knows what name to call itself. If this is omitted, Sybase assumes a data server of the name SYBASE is being started. The -e errorlog point to the full filename and pathname ofthe data server's error log. During an install, Sybase defaults to the$SYBASE/install directory. Because this directory containsa number of important files other than the error log, it is recommended thatthis be changed to point to another directory, maybe Page 561 $SYBASE/logs/. Also, if there is more than one data server on the system, the errorlog filename should be changed. Appending the .errorlog suffix to each data server name provides each server with its individual errorlog file, making tracking down errors much simpler. The next parameter to look at is the interface parameter, -i interfacedir. This is the directory where Sybase can find the interface file. In some systems, there might be two interface files-one or more for the users to use and one for the Sybase system to use. The different interface files could contain different selections of server entries, preventing the users or the data server from accessing all the Sybase servers available. If this parameter is omitted, Sybase will look in the directory pointed to by $SYBASE environmental variable. One parameter that is not shown here is the configuration file parameter -c configfile. As of Version 11, Sybase can be started using a configuration file. This file contains the text of all the configuration options on the data server and their values. When no -c parameter is specified, Sybase defaults to the file servername. cfg found in the directory where the data server is started. The Origins of the Configuration File Before Version 11, all configuration parameters were kept only in tables in the master database. When a configuration option was changed and required a restart of the data server, the data server might not come up because of this change. Because the server was not up, there was no way to reset the option except by running a command to reset all the options to their default values. They then had to be reset to their values before the final incorrect option change. In other words, a real pain in the you-know-what. Now, the configuration file contains all these options in an easily edited file. To revert a value back, a text editor can be used to change the value in the file. When the data server is next restarted with the reverted values, the data server will restart cleanly. Two additional parameters can be used with the dataserver program-the version parameter -v and the single-user mode parameter -m. The version number parameter is handy to use when you need to see the current version of the database program, and do not want to search for it in the error log. The single-user, or maintenance, mode -m is used to bring the data server up so only the sa account can access the data server. This is required when doing certain recovery procedures and, in general, when there is a need to prevent user access while maintenance is being done. Page 562 It is easy to re-create this file by using a text editor to create a script like the preceding one, but with the values of your data server. Once the file is created and the account that starts the data server has access to it, run the startserver -f runfile command. Once you've replaced the runfile, return to Step 1. Step 3: Able to Get Shared Memory? Like most database products, Sybase uses shared memory to communicate between data server processes, process queries, and store sections of the database for quick access. If Sybase is prevented from acquiring the minimum shared memory it needs, it will fail to come up and instead will error out with a message like the following: 00:1999/03/21 23:39:02.78 kernel os_create_region: can't allocate 2147479552 bytes 00:1999/03/21 23:39:02.80 kernel kbcreate: couldn't create kernel region. 00:1999/03/21 23:39:02.80 kernel kistartup: could not create shared memory If you are able to get to shared memory, proceed to Step 5. If not, proceed to Step 4. Step 4: Free Up Shared Memory or Reconfigure Memory in Configuration File As mentioned earlier, changes in configuration parameters can cause the Sybase server to need additional memory. This in turn can require the Sybase server to request a larger shared memory segment from the OS. There are two things that can prevent this from happening: 1. The maximum shared memory segment size is undersized. 2. There is not enough shared memory on the system to allow this to run. In the first case, the solution is to increase the maximum shared memory segment value appropriately for the OS. Because Sybase is supported on many different Page 563 OSs, how to change this is not shown here. Please refer to the appropriate operating system Sybase installation manual for further information on setting this value. In the second case, either shared memory needs to be added to the system, or shared memory needs to be freed up from other processes. Please contact a system administrator for help in accomplishing either of these. You can view the shared memory being used by using the ipcs command. Check the manpages for the correct usage of the command, but the output should look something like this: Shared Memory Segments shmid owner perms bytes nattch status 129 sybase 600 11964416 1 2 sybase 666 1024 3 56 curtis 606 33334342 3 Here, the curtis process has also taken some of the shared memory for itself. By stopping this process, the shared memory should be freed up. If stopping the process does not free up the memory, it can be freed using the Unix command ipcrm. Again, check the Unix manpages for more information on this command on your operating system. If none of these solutions helps the problem, the changes in the configuration options will need to be reverted to allow the data server to come up correctly. If possible, make one change to the configuration options at a time. Sybase configuration options interact, some causing the system to need more memory, others less. By making one change at a time, the configuration option that prevents the system from restarting is known and can be adjusted accordingly. Once you have corrected these problems, return to Step 1. Step 5: Able to Connect to Data Server? When Sybase starts, it needs the interface file so it can set up all the interprocess and network communication parameters. This interfaces file is usually named interfaces, interface, or sql.ini, depending on the operating system. If you are able to connect, proceed to Step 7. If you are unable to connect, go to Step 6. Page 564 Step 6: Check Interface File If Sybase cannot find the file or there is something wrong with it, Sybase will error out during startup with a message like one of the following: 00:1999/03/22 00:17:46.54 kernel Could not open interface file '/opt/sybase/interfaces' 00:1999/03/22 00:22:16.15 kernel Could not find name 'SYB_MYDB' in the interfaces file /opt/sybase/interfaces To correct the first error, make sure the interface file is located where the runfile says it should be located. If the interface file is in a different directory, either adjust the runfile to point to the correct directory or move the interface file to the directory specified in the runfile. The second entry means the lines for the data server being started (in this case SYB_MYDB) cannot be found in the interface file. To fix this problem, add an entry using the appropriate method for your operating system. Please see the Sybase OS-specific documentation for more information. Once the entry is in the correct interface file, rerun the startserver command to see if this has fixed the problem. Once you have corrected any problems with the interface file, return to Step 1. Step 7: Master Database Initialized? The master database is the most important database in the system: not only does it contain all the information about all the other databases but also it is the repository of all information regarding logins, roles, devices, usages of those devices, and configuration options on the system. It is imperative that this database comes up correctly. Otherwise, the rest of the data server would not work at all. If the master database did initialize, proceed to Step 14. If it did not, go to Step 8. Page 565 Step 8: Master Device/File Missing? The first information that something is wrong with the master database would most likely be the following error messages displayed during startup: 00:1999/03/22 00:53:48.44 kernel kdconfig: unable to read primary master device 00:1999/03/22 00:53:48.44 kernel kiconfig: read of config block failed These lines are preceded by a line that will tell you why the system could not read the primary master device. To fix these problems, go to Step 15. If none of the solutions in that section corrects the problem, you must restore the master database (go to Step 9). If there are no problems accessing the master data device, then the problem might be the master database has been corrupted. This type of problem could show a number of strange symptoms if the data server was already running. For example, isql will crash with program errors when trying to connect, or currently running queries will crash. If strange things like these start happening, the best thing to do is to try to restart the data server. However, in situations like this, almost all access to the data server will be blocked, so the isql command shutdown cannot be used normally. Instead, the dataserver process must be stopped at the operating system level. In Unix, this can be done using the kill command. This should be used only during extreme situations such as when the data server is consuming all the processing of the system. Use kill only if nothing else will help, because it could cause corruption of the databases in the data server. Once the data server is down, check to make sure memory used by Sybase has been freed. See Steps 3 and 4 for more information on shared memory. When the shared memory has been freed, try starting the data server using normal starting procedures. If the data server fails to start, see if there are errors on the master device in the data server error log. Go to Step 15 and make sure there are no problems there. If there are, correct the problem with the device, and try restarting again. If there are no problems with the physical devices, the master database will need to be completely recovered from backup. Page 566 If there are any problems with the physical devices, proceed to Step 9. Otherwise, proceed to Step 10. Step 9: Restoring Generic Master Database Follow these steps to restore the generic master database: 1. Backup server up? Make sure your backup server is up and running. It will be used later to restore any backups of the master database and to back up the restored database when the recovery is finished. 2. Create data device. Since the master device was corrupted, it must be created anew. Open up the runfile used to start the Sybase server in a text editor. Note the master device path and the size of the master device; they will be used in the buildmaster command to re-create the master device. To re-create the master device, enter the following buildmaster command or the OS equivalent needed by the downed server: buildmaster -d /sybdata/master.dbf -s 8704 The -d option is the master device path and the -s option is the size in pages. For this example, the master device being created is 17 MB (8704 2-K pages) on /sybdata/master.dbf. 3. Startup in master recovery mode. To start the data server in master recovery mode, first make a copy of the current runfile. Edit this file, and add the -m master recovery mode parameter. When the change is done, use this file to start the dataserver process with the startserver -f master_runfile command. This mode will allow the master database's system tables to be updated and prevent users from accessing the system. 4. Re-create master's entries in usages. Before anything more can be done to restore the data into the master database, the master device needs to be restored to the same usage as it was when the last backup of the master database was performed. Using hardcopies of the system tables sysusages, sysdevices, and sysdatabases, the entries in sysusages can be re-created with the alter database and create database commands. [...]... 1024 1540 NULL 6 08 2 7 0 1024 2564 NULL 6 08 1 7 1536 1024 3 588 NULL 920 5 7 0 1024 4612 NULL 272 1 7 2560 20 48 5636 NULL 20 48 4 7 0 81 92 16777216 NULL 86 4 6 3 0 5120 671 088 64 NULL 4720 6 4 5120 2560 83 886 080 NULL 2552 Example 16 -8 sysdevices select * from sysdevices low high status cntrltype name phyname - - - 0 10751 3 0 master d_master 671 088 64 67113 983 2 0 mydbdev... mydbdev /sybdata/mydbdev.dbf 83 886 080 83 888 639 2 0 mydblogdev /sybdata/mydblogdev.dbf 16777216 16 785 407 2 0 sysprocsdev /sybdata/sybprocs.dbf 0 1 280 16 3 tapedump1 /dev/st0 0 20000 16 4 tapedump2 /dev/st1 Since this is a recovery of the master database, we only have to restore up to the last master database entry in sysusages These would be those where dbid Page 5 68 = 1, and the vstart is less than... Backup & Recovery, describes backup and recovery of ClearCase, a software configuration management tool • Chapter 18, Backup Hardware, provides information on the characteristics of, and trade-offs among, various hardware architectures • Chapter 19, Miscellanea, discusses other backup topics, such as volatile filesystems, gigabyte Ethernet, and disk recovery companies Page 591 17 ClearCase Backup & Recovery. .. keeping your system healthy and in a state from which it can be easily recovered Starting Out • Run a full cold backup of the data server Make sure to have both online bcps of the system tables and hardcopy outputs • Run a full hot backup Store a copy onsite and a copy offsite • Document all backup and recovery procedures • Make sure all databases have transaction logging enabled and running A quick way... full backup is performed If in doubt, make as full a backup as possible Also, if you can, run through a full backup using your procedures Then use the procedures to restore from these backups I have seen more than one site have backups that, when they needed them, were completely useless Page 589 VI BACKUP & RECOVERY POTPOURRI Part VI consists of the following three chapters: • Chapter 17, ClearCase Backup. .. scripts and data changes, will be saved This will help facilitate recovery in case of future problems Page 583 Return to Step 1 Logical Backups The dump command is a very powerful backup tool, but there are limitations to its abilities For one thing, it can only back up all of the database objects together If a backup of a single table in the system is needed, this command cannot be used Also, the dump backups... must be included in the backup The albd_server process services the Registry Registry backups The simplest way to ensure good registry backups is to designate one or more machines as backup registry server host(s) A backup registry host takes periodic snapshots of the primary registry host's registry files (see the rgy _backup command in the ClearCase manuals) and client list and stores these snapshot... contain this change If you have a backup of the model database and you can use the isql use command, then the database can be restored directly from backup using the load command If not, then the database must be restored from scratch Use the following commands to accomplish this: 1 Run buildmaster If there is no backup of the model database available, the buildmaster command can be used to restore the... knows about the backup server 5 Add backup server entry into sysservers To be able to do the recovery, the data server needs to know the name of the backup server If it is not SYB _BACKUP, an entry will need to be added to sysservers Use the following T-SQL command to update an entry into sysservers begin transaction update sysservers set srvnetname = "BIG _BACKUP" where srvname = "SYB _BACKUP" go /* Make... backup registry host(s)) 3 Usually, the rgy _backup program runs automatically once a day on each backup registry host However, if you feel the need to do a manual backup, log on to the backup registry host as "root" and execute the command $CCHOME/bin/rgy _backup If you are using one host for all ClearCase server functions, the Registry still should have periodic backups This is done by shutting down the . 6 08 2 7 0 1024 2564 NULL 6 08 1 7 1536 1024 3 588 NULL 920 5 7 0 1024 4612 NULL 272 1 7 2560 20 48 5636 NULL 20 48 4 7 0 81 92 16777216 NULL 86 4 6 3 0 5120 671 088 64 NULL 4720 6 4 5120 2560 83 886 080 . 67113 983 2 0 mydbdev /sybdata/mydbdev.dbf 83 886 080 83 888 639 2 0 mydblogdev /sybdata/mydblogdev.dbf 16777216 16 785 407 2 0 sysprocsdev /sybdata/sybprocs.dbf 0 1 280 16 3 tapedump1 /dev/st0 0 20000. 4720 6 4 5120 2560 83 886 080 NULL 2552 Example 16 -8. sysdevices select * from sysdevices low high status cntrltype name phyname 0 10751 3 0 master d_master 671 088 64 67113 983 2 0 mydbdev /sybdata/mydbdev.dbf

Ngày đăng: 13/08/2014, 04:21

TỪ KHÓA LIÊN QUAN