7.7. Review Questions

  1. What activity is responsible for causing most block corruption?

    1. Human errors that introduce bugs caused by hardware, software, or firmware

    2. Memory errors written to disk

    3. Random I/O errors written to disk

    4. A bad transaction that updates many tables

  2. What is the most common way of detecting block corruption in the database?

    1. Monitoring the operating system log files

    2. Monitoring the application log files

    3. Monitoring the ALERT.LOG database log

    4. Monitoring the ALERT.LOG and associated trace files

  3. What is the correct command to analyze the EMPLOYEE table in the schema owned by user TEST?

    1. ANALYZE INDEX EMPLOYEE VALIDATE STRUCTURE

    2. ANALYZE TABLE TEST.EMPLOYEE VALIDATE STRUCTURE

    3. ANALYZE TABLE EMPLOYEE VALIDATE STRUCTURE

    4. ANALYZE INDEX TEST.EMPLOYEE VALIDATE STRUCTURE

  4. Which of the following is the most correct statement about what the ANALYZE command does?

    1. The ANALYZE command identifies the object and blocks where corruption exists.

    2. The ANALYZE command identifies the objects where corruption exists.

    3. The ANALYZE command identifies the table where corruption exists.

    4. The ANALYZE command identifies the index and the block where corruption exists.

  5. The DBVERIFY utility reports output about corruption in which manner?

    1. The DBVERIFY utility identifies the amount of corrupt objects, not the amount of blocks in a table.

    2. The DBVERIFY utility identifies the amount of corrupt blocks, not the amount of objects in a datafile.

    3. The DBVERIFY utility identifies the amount of corrupt pages, not the amount of blocks in a datafile.

    4. The DBVERIFY utility identifies the amount of corrupt pages, not the amount of blocks in the database.

  6. Which of the following is a correct statement about the DBVERIFY utility?

    1. The DBVERIFY utility can be executed only on online datafiles.

    2. The DBVERIFY utility can be executed on online datafiles and offline datafiles.

    3. The DBVERIFY utility can be executed only on offline datafiles.

    4. The DBVERIFY utility can be executed only on online datafiles and offline tablespaces.

  7. What is the correct syntax for using the DBVERIFY utility to write to a file and to verify the DATA tablespace with a 4k database block size?

    1. dbv blocksize=4096 file=data01.dbf logfile=c: empdata01.log

    2. dbv blocksize=4096 file=user01.dbf logfile=c: empdata01.log

    3. dbv file=data01.dbf blocksize=4k logfile=c: empdata01.log

    4. dbverify blocksize=4096 file=data01.dbf logfile=c: empdata01.log

  8. The DB_BLOCK_CHECKING initialization parameter needs be enabled to verify what objects?

    1. Objects stored in the default tablespace of the SYS user

    2. Objects stored in the default tablespace of any application owner

    3. Objects stored in the default tablespace of the SCOTT user

    4. Objects stored in the default tablespace of the HR user

  9. What statement best describes DB_BLOCK_CHECKING?

    1. DB_BLOCK_CHECKING is a utility that performs checksums on blocks every time the block is modified.

    2. DB_BLOCK_CHECKING is a database parameter that causes the Oracle to perform checksums on blocks every time the block is modified.

    3. DB_BLOCK_CHECKING is a command that performs checksums on blocks every time the checkpoint process occurs.

    4. DB_BLOCK_CHECKING is a database parameter that performs checksums on blocks every time the database checkpoint occurs.

  10. How should you use the DBMS_REPAIR package to build a REPAIR_TABLE for the DATA tablespace that can help the diagnosis of corrupt rows in a table in that tablespace?

    1. declare
         begin
         dbms_repair.admin_table
         (table_name => 'REPAIR_TABLE',
         table_type => dbms_repair.repair_table,
         action => dbms_repair.create_action,
         tablespace => 'DATA01'),
         end;
         /

    2. declare
         begin
         dbms_repair.admin_table
         (table_name => 'REPAIR_TABLE',
         table_type => dbms_repair.repair_table,
         action => dbms_repair.create_action,
         tablespace => 'DATA'),
         end;
         /

    3. declare
         begin
         dbms_repair.admin_table
         (table_name => 'REPAIR_TABLE',
         table_type => dbms_repair.repair_table,
         action => dbms_repair.create_action,
         tablespace => 'DATA'),
         end;
         /

    4. declare
         begin
         dbms_repair.admin_table
         (table_name => 'REPAIR_TABLE',
         table_type => dbms_repair.repair_table,
         action => dbms_repair.create_action,
         tablespace => 'DATA'),
         end;
         /

  11. How should you use the DBMS_REPAIR package to verify REPAIR BLOCK COUNT and load REPAIR_TABLE for the EMPLOYEE table in the SCOTT schema with information of the object and block that is corrupt in the tablespace?

    1. set serveroutput on size 100000;
         declare
         rpr_count int;
         begin
         rpr_count := 0;
         dbms_repair.check_objects(
         schema_name => 'SCOTT',
         object_name => 'EMPLOYEE',
         repair_table_name => 'REPAIR_TABLE',
         corrupt_count => rpr_count);
         dbms_output.put_line('repair block count: '
         ||to_char(rpr_count));
         end;

    2. set serverout on size 100000;
         declare
         rpr_count int;
         begin
         rpr_count := 0;
         dbms_repair.check_objects(
         schema_name => 'SCOTT',
         object_name => 'EMPLOYEE',
         repair_table_name => 'REPAIR_TABLESPACE',
         corrupt_count => rpr_count);
         dbms_output.put_line('repair block count: '
         ||to_char(rpr_count));
         end;

    3. set serveroutput on size 100000;
         declare
         rpr_count int;
         begin
         rpr_count := 0;
         dbms_repair.check_object(
         schema_name => 'SCOTT',
         object_name => 'EMPLOYEE',
         repair_table_name => 'REPAIR_TABLE',
         corrupt_count => rpr_count);
         dbms_output.put_line('repair block count: '
         ||to_char(rpr_count));
         end;

    4. set serverout on size 100000;
         declare
         rpr_count int;
         begin
         rpr_count := 0;
         dbms_repair.check_object(
         schema_name => 'SCOTT',
         object_name => 'EMPLOYEE',
         repair_table_name => 'REPAIR_TABLE',
         corrupt_count => rpr_count);
         dbms_output.put_line('repair block count: '
         ||to_char(rpr_count));
         end;

  12. What could be impacted by the DBMS_REPAIR package being used on a table?

    1. A table related by a foreign key and primary key to the table repaired by the DBMS_REPAIR package could become unusable.

    2. A trigger on the table repaired by the DBMS_REPAIR package could introduce logical corruption.

    3. An index related to the table repaired by the DBMS_REPAIR package could become out of sync with the repaired table.

    4. All of the above.

  13. How should you use the DBMS_REPAIR package to identify problems with a primary key index on a corrupt table in the SCOTT schema with the EMPLOYEE_PK index? (Choose all that apply.)

    1. declare
        orph_count int;
      begin
        orph_count:= 0;
      dbms_repair.dump_child_keys (
           schema_name => 'SCOTT',
           object_name => 'EMPLOYEE_PK',
           object_type => dbms_repair.index_object,
           repair_table_name => 'REPAIR_TABLE',
          orphan_table_name => 'ORPHAN_KEY_TABLE',

      key_count => orph_count);
          dbms_output.put_line('orphan-index entries: ' || to_char(orph_count));
      end;
      /

    2. declare
        orph_count int;
      begin
        orph_count:= 0;
      dbms_repair.dump_child_keys (
           schema_name => 'SCOTT',
           object_name => 'EMPLOYEE_PK',
           object_type => dbms_repair.index_object,
           repair_table_name => 'REPAIR_TABLE',
          orphan_table_name => 'ORPHAN_KEY_TABLE',
          key_count => orph_count);
          dbms_output.put_line('orphan-index entries: ' || to_char(orph_count));
      end;
      /

    3. declare
        orph_count int;
      begin
        orph_count:= 0;
      dbms_repair.dump_child_keys (
           schema_name => 'SCOTT',
           object_name => 'EMPLOYEE_PK',
           object_type => dbms_repair.index_object,
           repair_table_name => 'REPAIR_TABLE',
          orphan_table_name => 'ORPHAN_KEY_TABLE',
          key_count => orph_count);
          dbms_output.put_line('orphan-index entries: ' || to_char(orph_count));
      end;
      /

    4. declare
        orph_count int;
      begin
        orph_count:= 0;
      dbms_repair.dump_child_keys (
           schema_name => 'SCOTT',
           object_name => 'EMPLOYEE_PK',
           object_type => dbms_repair.index_object,
           repair_table_name => 'REPAIR_TABLE',
          orphan_table_name => 'ORPHAN_KEY_TABLE',
          key_count => orph_count);
          dbms_output.put_line('orphan-index entries: ' || to_char(orph_count));
      end;
      /

  14. What table can you query to identify the block that is corrupt?

    1. DBA_CORRUPT_BLOCKS

    2. REPAIR_TABLE

    3. DBA_REPAIR_TABLE

    4. CORRUPT_BLOCKS_TABLE

  15. When determining how to resolve block corruption, what should you keep in mind?

    1. The tables where the corruption is located

    2. The block or blocks in the corrupt table

    3. The extent of the corruption in the table or tables

    4. The tables and indexes where the corruption is located

  16. How should you use the DBMS_REPAIR package to rebuild freelists on a corrupt table?

    1. declare
         begin
         dbms_repair.rebuild_freelist (
            schema_name => 'SCOTT',
            object_name => 'EMPLOYEE',
            object_type => dbms_repair.table_object);
         end;
         /

    2. declare
         begin
         dbms_repair.rebuild_freelist (
            schema_name => 'SCOTT',
            object_name => 'EMPLOYEE',
            object_type => dbms_repair.table_object);
         end;
         /

    3. declare
         begin
         dbms_repair.rebuild_freelist (
            schema_name => 'SCOTT',
            object_name => 'EMPLOYEE',
            object_type => dbms_repair.table_object);
         end;
         /
         D. declare

    4. declare
         begin
         dbms_repair.rebuild_freelist (
            schema_name => 'SCOTT',
            object_name => 'EMPLOYEE',
            object_type => dbms_repair.table_object);
         end;
         /

  17. Which of the following statements best describes using the DBMS_REPAIR package to resolve block corruption?

    1. Resolving block corruption is a complex process, and you should be careful.

    2. Resolving block corruption is a complex process, and you most often use the DBMS_REPAIR package even if the corruption is widespread.

    3. Resolving block corruption is a complex process, and you should contact Oracle Support if possible.

    4. Resolving block corruption is a complex process, and use of the DBMS_REPAIR package cannot introduce other problems in the database.

  18. Before attempting to resolve block corruption with the DBMS_REPAIR package, what should you consider?

    1. Examine other methods of resolving the corrupt objects by rebuilding the object if the data is available.

    2. Attempt to exclude the corruption by excluding the row from select statements.

    3. If possible, perform an incomplete recovery.

    4. All of the above.

  19. Which of the following is required to perform a block media recovery with RMAN? (Choose all that apply.)

    1. The datafile number and block number of the corrupted block or blocks in the UDUMP trace file

    2. The tablespace number and block number of the corrupted block or blocks

    3. The datafile number and block number of the corrupted block or blocks

    4. The ALERT.LOG information from the ORA-01578 error

  20. Which of the following statements are true regarding BMR? (Choose all that apply.)

    1. BMR must be performed with RMAN.

    2. BMR may be performed with RMAN and SQL.

    3. Incremental backups can be used to perform BMR.

    4. Redo logs are not required to perform BMR if the redo log records don't affect the corrupt block.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset