Question

In: Computer Science

Simulate a problem with undo. You will need to be connected as user SYSTEM or some...

Simulate a problem with undo. You will need to be connected as user

SYSTEM or some other user to whom you have granted the DBA role.

.

Create an undo tablespace with a single datafile of only 200 KB. Do not set the file to autoextend.

.

Set the database to use this small undo tablespace. Confirm that an undo

segment has been created in this tablespace and that it is online by querying

the views DBA_ROLLBACK_SEGS and V$ROLLSTAT.

Why do you think that only one undo segment was created?

.

Create an empty table based on the ALL OBJECTS view with this statement:

create table undotest as select * from all_objects where 1=2;

.

Populate this table with the contents of the ALL OBJECTS view:

insert into undotest select * from all_objects ;

.

The statement will fail with an error "ORA-30036: unable to extend segment by 8 in undo tablespace."

Query the new table, and you will find that it is still empty. Why is this?

.

Adjust the undo tablespace's datafile to autoextend, and attempt to insert the contents of the ALL_OBJECTS view into the new table. This time, the insertion will succeed. Find out how many blocks of undo are needed to support the transaction so far by querying V$TRANSACTION as well as how big the new datafile is by querying V$DATAFILE.

.

Delete every row in the new table and then repeat the queries against V$TRANSACTION and V$DATAFILE.

You will see that the deletion generated many more blocks of undo and required a much larger extension of the undo

datafile than the insertion. Why is this?

.

Tidy up by switching back to the original undo tablespace and then dropping the test table and tablespace

.

(3) Include in the assignments all queries and their results that you execute in this part. Also include your answers to the questions written in italic thought the exercise.

Solutions

Expert Solution

1- creating undo table space- (I am taking random name- UNDO_TEST)-

create undo tablespace UNDO_TEST datafile '/path/to/your/dbf/file/xyz.dbf' size 200K;

Now, you can be use autoextend off manually to be reassured about it-

ALTER DATABASE DATAFILE /path/to/your/dbf/file/xyz.dbf' AUTOEXTEND OFF;

2- Now, let us set our new undo tablespace to use by database, we can switch between undo tablesspaces because this is a dynamic variable. Use below query to do this-

ALTER SYSTEM SET UNDO_TABLESPACE = UNDO_TEST;

Now, you can query DBA_ROLLBACK_SEGS to know about your rollback segments-

select segment_name, segment_id,status from DBA_ROLLBACK_SEGS;

3- Query-

create table undotest as select * from all_objects where 1=2;

4- insert into undotest select * from all_objects ;

5- This query will fail because we have set autoextend to off. If we set it on or we increase size then our query will run fine as it will get proper space to insert logs.

6- write a simple select query against both view to see the desired output-

select file,blocks,checkpoint_time,status from V$DATAFILE;

7- deletion will take more blocks than insertion for sure. Because if you want to insert something then undo action would be deletion, for that you only need to store rowid of record. But if you want to perform deletion then undo action will be insertion again, for that we need whole record. Hence deletion generates more number of blocks.

8- Use below command to switch back to original table space. After firing below command, wait until everything rollbacks properly. (note originalTS is just a reference, you can give from your database.)

Alter System SET Undo_Tablespace=originalTS;

drop table undotest; //to drop table

drop tablespace UNDO_TEST; //to delete table space


Related Solutions

For the following commands you must be logged in as user “system”. You will need to...
For the following commands you must be logged in as user “system”. You will need to do some research on the commands CREATE USER; GRANT CREATE SESSION; GRANT CREATE…..; GRANT ALTER …., GRANT SELECT….; REVOKE ……; and EXECUTE ….. 5. Create two database users:  The first is a concatenation of your first and last name (e.g. johndoe).  The second is a concatenation of your instructors first and last name (e.g. sallysmith) 6. Assign the two users privileges to...
This problem requires you to prompt the user for some information, and apply simple arithmetic operation...
This problem requires you to prompt the user for some information, and apply simple arithmetic operation to generate an output. We all know that driving is expensive. So let's write a program to observe this. Your job is to prompt the driver for miles per gallon and gas price (in dollars) per gallon You should prompt the user with the words: Enter miles per gallon: at which time the users enters a number, and then Enter the gas price:at which...
Assignment (C language) We will simulate the status of 8 LEDs that are connected to a...
Assignment (C language) We will simulate the status of 8 LEDs that are connected to a microcontroller. Assume that the state of each LED (ON or OFF) is determined by each of the bits (1 or 0) in an 8-bit register (high-speed memory). Declare a char variable called led_reg and initialize it to 0. Assume that the least-significant bit (lsb) controls LED#0 and the most-significant bit (msb) controls LED#7. In the main function, build and present a menu to the...
Define a problem with user input, user output, Switch and some mathematical computation. Write the pseudocode,...
Define a problem with user input, user output, Switch and some mathematical computation. Write the pseudocode, code and display output. Include source code and output. If no output explain the reason why and what you are going to do make sure it does not happen again aka learning from your mistakes. Problem: Pseudocode: Code: Output:
Define a problem with user input, user output, While Statement and some mathematical computation. Write the...
Define a problem with user input, user output, While Statement and some mathematical computation. Write the pseudocode, code and display output.
Hi. Are you familiar with deunions? The objective of the task is to undo the last...
Hi. Are you familiar with deunions? The objective of the task is to undo the last union operation in a weighted quick-union find implementation, of which I have partly written here (see below). I push the unions on a stack. The code is not finished though, and far from perfect. Can you point out my mistakes and figure out how to create the deunion-operation correctly? Best regards, Eirik public class UFwithDeunion { private int[] id; //parent link (site indexed) private...
You need to create a Java class library to support a program to simulate a Point-...
You need to create a Java class library to support a program to simulate a Point- of-Sale (POS) system. General Requirements: You should create your programs with good programming style and form using proper blank spaces, indentation and braces to make your code easy to read and understand; You should create identifiers with sensible names; You should make comments to describe your code segments where they are necessary for readers to understand what your code intends to achieve. Logical structures...
Define a java problem with user input, user output, Do While Statement and some mathematical computation....
Define a java problem with user input, user output, Do While Statement and some mathematical computation. Write the pseudocode, code and display output.
i need the pseudocode and python program for the following problem. Besides the user entering the...
i need the pseudocode and python program for the following problem. Besides the user entering the number of books purchased this order, they are asked for the number of points earned for the year before this order and the number of books ordered this year before this order. There are bonus points awarded based on the number of books previously ordered and number ordered now. These points should be added to the variable points: Current order: 0 Previous Orders >...
I need some asistance understanding of what to do for this problem in javascript: * Problem...
I need some asistance understanding of what to do for this problem in javascript: * Problem 9 - find the largest number in the list of arguments * * Allow any number of arguments to be passed to the function.  Allow both * String and Number arguments to be passed, but throw an error if any other * type is passed to the function (e.g., Boolean, Date, etc.). If the list * is empty (nothing passed to the function), return null.  Otherwise,...
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT