* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Recovery
Survey
Document related concepts
Global serializability wikipedia , lookup
Microsoft Access wikipedia , lookup
Microsoft SQL Server wikipedia , lookup
Entity–attribute–value model wikipedia , lookup
Commitment ordering wikipedia , lookup
Extensible Storage Engine wikipedia , lookup
Oracle Database wikipedia , lookup
Serializability wikipedia , lookup
Open Database Connectivity wikipedia , lookup
Ingres (database) wikipedia , lookup
Functional Database Model wikipedia , lookup
Relational model wikipedia , lookup
Microsoft Jet Database Engine wikipedia , lookup
Database model wikipedia , lookup
Concurrency control wikipedia , lookup
Transcript
IT420: Database Management and Organization Crash Recovery 12 April 2006 Adina Crăiniceanu www.cs.usna.edu/~adina 1 Goals Finish database security Database Recovery Problems Solutions DBA Tasks Kroenke, Database Processing 2 DBA Tasks Managing database structure Controlling concurrent processing Managing processing rights and responsibilities Developing database security Providing for database recovery Managing the DBMS Maintaining the data repository Kroenke, Database Processing 3 Database Security Database security - only authorized users can perform authorized activities Developing database security Determine users’ rights and responsibilities Enforce security requirements using security features from both DBMS and application programs Kroenke, Database Processing 4 Application Security If DBMS security features are inadequate, additional security code could be written in application program Example In Project 2? Kroenke, Database Processing 5 SQL Injection Attack SQL injection attack occurs when data from the user is used to modify a SQL statement Example: User input: 71111 OR TRUE SELECT * FROM EMPLOYEE WHERE EMPLOYEE.ID = 71111 OR TRUE; Result: every row of the EMPLOYEE table will be returned Check user input ! Kroenke, Database Processing 6 Database Security Review Purpose: only authorized users can perform authorized activities Methods: Run DBMS behind a firewall Apply the latest OS and DBMS service packs and fixes Use the least functionality possible Protect the computer that runs the DBMS Manage accounts and passwords Write additional security code in application programs Kroenke, Database Processing 7 DBA Tasks Managing database structure Controlling concurrent processing Managing processing rights and responsibilities Developing database security Facilitate database recovery Managing the DBMS Maintaining the data repository Kroenke, Database Processing 8 Review: ACID Properties Atomicity: All actions happen, or none happen Consistency Isolation Durability: If a transaction commits, its effects persist The Recovery Manager guarantees Atomicity & Durability. Kroenke, Database Processing 9 Motivation Atomicity: Transactions may abort (“Rollback”) – need restore previous state Durability: DBMS might stop running – need preserve state Desired behavior after system restarts: T1, T2 & T3 should be durable. T4 & T5 should be aborted (effects not seen). Kroenke, Database Processing 10 Basic Idea: Logging Periodically save the database to disk Keep a transaction log - small Saved on another disk Contains records of the data changes in chronological order, for all transactions Kroenke, Database Processing 11 Transaction Log Kroenke, Database Processing 12 Write-Ahead Logging (WAL) Must write to log before writing to the database atomicity Must write all log records for a transaction before commit durability Kroenke, Database Processing 13 Class Exercise Write transaction log entries for the following schedule: T1: R(Ch) R(Sa), W(Sa), Ch = 100 Sa=1000, Sa=500 T2: R(Ch) Ch = 100 Abort Kroenke, Database Processing R(Sa), W(Sa), Commit Sa=1000, Sa=1100 14 Rollback/Rollforward When there is a failure: Analyze: figure out which transactions commited, which failed REDO (Rollforward): restore database using saved data and re-execute all changes since the last save UNDO (Rollback): undo the changes made by failed transaction to the database Kroenke, Database Processing 15 Rollforward After-image: a copy of every database record (or page) after it was changed Kroenke, Database Processing 16 Rollback Before-image: a copy of every database record (or page) before it was changed. Also used for simple transaction abort Kroenke, Database Processing 17 Checkpoint A checkpoint is a point of synchronization between the database and the transaction log DBMS refuses new requests, finishes processing outstanding requests, and writes its buffers to disk The DBMS waits until the writing is successfully completed the log and the database are synchronized Checkpoints speed up database recovery process Database can be recovered using after-images since the last checkpoint Checkpoint can be done several times per hour Most DBMS products automatically checkpoint themselves Kroenke, Database Processing 18 Database Recovery: A Processing Problem Occurs Kroenke, Database Processing 19 Database Recovery: Recovery Processing Kroenke, Database Processing 20 Class Exercise T1: R(Ch) R(Sa), W(Sa), Ch = 100 Sa=1000, Sa=500 T2: R(Ch) Ch = 100 Abort R(Sa), W(Sa), Commit Sa=1000, Sa=1100 Process crash Analysis REDO UNDO Kroenke, Database Processing 21 DBA Tasks for Recovery Ensure database saves and logs are generated Periodically backup database Periodically backup log On disk On tapes Kroenke, Database Processing 22 DBA Tasks Managing database structure Controlling concurrent processing Managing processing rights and responsibilities Developing database security Providing for database recovery Managing the DBMS Maintaining the data repository Kroenke, Database Processing 23 Managing the DBMS Generate database application performance reports Investigate user performance complaints Assess need for changes in database structure or application design Modify database structure Evaluate and implement new DBMS features Tune the DBMS Kroenke, Database Processing 24 Maintaining the Data Repository DBA is responsible for maintaining the data repository Data repositories are collections of metadata about users, databases, and its applications The repository may be Virtual as it is composed of metadata from many different sources: DBMS, code libraries, Web page generation and editing tools, etc. An integrated product The best repositories are active and they are part of the system development process Kroenke, Database Processing 25 DBA Tasks - Conclusions Managing database structure Controlling concurrent processing Managing processing rights and responsibilities Developing database security Providing for database recovery Managing the DBMS Maintaining the data repository Kroenke, Database Processing 26