Oracle11g的驱动的位置D:\app\Administrator\product\11.1.0\db_1\jdbc\lib\下的ojdbc6.jar文件。
❑ODBC:开放数据库互连,微软提出的,被计算机界广泛接受的一种数据访问方式,它把应用程序从具体的数据库调用中隔离开来,驱动程序管理器向应用程序提供统一的标准接口。
1,建立ODBC数据源2,使用连接字符串连接ODBC数据源。
❑JDBC-ODBC桥:为JA V A应用程序提供了一种把JDBC调用映射为ODBC调用的方法,其底层还是ODBC访问数据源的方式,现在不怎么使用了。
❑JDBC:JA V A与数据库的接口规范,SUN公司提出的,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成,现在使用的比较广泛。
1,使用连接字符串连接JDBC数据源。
事务(TRANSACTION)是作为单个逻辑工作单元执行的一系列操作。
这些操作作为一个整体一起向系统提交,要么都执行、要么都不执行。
事务是一个不可分割的工作逻辑单元。
例如:银行转账过程就是一个事务。
它需要两条UPDATE语句来完成,这两条语句是一个整体,如果其中任一条出现错误,则整个转账业务也应取消,两个账户中的余额应恢复到原来的数据。
事务必须具备以下四个属性,简称ACID 属性:❑原子性(Atomicity):事务是一个完整的操作。
事务的各步操作是不可分的(原子的);要么都执行,要么都不执行❑一致性(Consistency):当事务完成时,数据必须处于一致状态❑隔离性(Isolation):对数据进行修改的所有并发事务是彼此隔离的,这表明事务必须是独立的,它不应以任何方式依赖于或影响其他事务❑永久性(Durability):事务完成后,它对数据库的修改被永久保持,事务日志能够保持事务的永久性Sql Server中使用下列语句来管理事务:开始事务:BEGIN TRANSACTION提交事务:COMMIT TRANSACTION回滚(撤销)事务:ROLLBACK TRANSACTIONOracle11g中的事务相关的命令:commit savepoint rollbackSql*plus中,设置是否自动提交:set autocommit on|off默认是自动提交。
2,开启事务使用setAutoCommit(false),这样可以避免自动提交。
3,通过Savepoint接口来声明保存点。
题目1:create table yggz(code int, salary number(7,2));insert into yggz values(1, 1000);insert into yggz values(2, 150);commit;完成任务:如果1号员工的salary多于300元,则从1号员工的salary中减少300元,同时加到2号员工的salary上。
题目2:create table yggz(code int, salary number(7,2));insert into yggz values(1, 1000);insert into yggz values(2, 150);commit;完成任务:如果1号员工的salary多于300元,则从1号员工的salary中减少300元,同时加到2号员工的salary上,但是还要确保转账后的1号员工的salary多于转账后的2号员工的salary。
数据字典是整个oracle的核心,记录了数据库的最基本的信息。
数据字典包括数据字典基本表和数据字典视图。
数据字典基本表由$ORACLE_HOME\RDBMS\ADMIN\sql.bsq创建,数据字典基本表大多以$结尾,属于sys用户,存放在system表空间。
用户不能手动去修改数据字典基本表。
为了简化对数据字典基本表的使用,oracle提供了数据字典视图,oracle还为数据字典视图创建了公有同义词,方便用户使用,数据字典视图和同义词的创建通过catalog.sql。
数据字典视图分为三种类型:USER_、ALL_、DBA_。
USER_类型的视图表示当前登录用户拥有的信息。
ALL_类型的视图表示当前登录用户有权限看到的信息。
DBA_类型的视图表示数据库管理员能够看到的信息,也就是整个数据库范围内的信息。
例如:user_tables、all_tables、dba_tablesuser_tables对应了2个数据库对象,一个是数据字典视图、一个是同义词,而且是先基于数据字典基本表创建了数据字典视图,然后为该视图创建了一个同名的同义词。
动态性能视图:存储数据库中每时每刻都在变化的信息,主要是数据库的活动状态信息,它把存储在内存里的信息、和存储在控制文件里的信息,以视图的形式展现出来。
常见的动态性能视图:v$parameter:初始化参数文件中所有项的值,v$process:当前进程的信息,v$session:有关会话的信息,v$sysstat:基于当前操作会话进行的系统统计,v$log:从控制文件中提取有关重做日志组的信息,v$logfile有关实例重置日志组文件名及其位置的信息,v$lock:当前进程已获得的和正在请求的锁定信息,v$transaction:数据库的事务信息。
v$fixed_view_definition中记录了所有的动态性能视图的定义信息。
Oracle数据库有联机重做日志,这个日志是记录对数据库所做的修改,包括对表作的数据改变,对系统做的改变等。
可以使用它,来维护数据的完整性,以及进行数据库的恢复,可以进行日志挖掘。
日志文件分为在线日志文件和归档日志文件两类。
归档日志文件是在线日志文件的历史备份。
日志按照组来组织,每一个组里面有多个文件。
日志组按照循环方式来工作,所以ORACLE中,至少应该有两个日志组,当一个联机重做日志组被写满的时候,就会发生日志切换,这时联机重做日志组2成为当前使用的日志,当联机重做日志组2写满的时候,又会发生日志切换,去写联机重做日志组1,就这样反复进行。
如果数据库处于非归档模式,联机日志在切换时就会丢弃.而在归档模式下,当发生日志切换的时候,被切换的日志会进行归档。
比如,当前在使用联机重做日志1,当1写满的时候,发生日志切换,开始写联机重做日志2,这时联机重做日志1的内容会被拷贝到另外一个指定的目录下。
这个目录叫做归档目录,拷贝的文件叫归档重做日志。
数据库使用归档方式运行时才可以进行灾难性恢复。
❑Oracle 数据库可以运行在两种归档方式:❑非归档日志方式❑归档日志方式❑非归档日志方式可以避免实例故障,但无法避免介质故障。
在此方式下,数据库只能实施冷备份❑归档日志方式产生归档日志,用户可以使用归档日志完全恢复数据库归档日志方式下数据库的工作原理:查看当前数据库的归档方式,以及归档位置archive log list改变非归档模式到归档模式:1)SQL>SHUTDOWN NORMAL/IMMEDIATE;2)SQL>START MOUNT;3)SQL>ALTER DA TABASE ARCHIVELOG;4)SQL>ALTER DA TABASE OPEN;使得数据库从归档模式调整到非归档模式,和上面步骤一样。
查看初始化参数log_archive_dest,查看归档日志的存放位置。
早期的初始化参数log_archive_start,已经不起作用了。
就是说:从Oracle10g开始,log_archive_start参数已经被废弃,只要启动数据库的归档模式,Oracle就会启用自动归档,这避免了10g以前由于用户疏忽所带来的一系列问题。
早期的初始化参数LOG_ARCHIVE_DEST ,已经不起作用了。
就是说:从Oracle10g开始,LOG_ARCHIVE_DEST参数已经被废弃。
参数log_archive_dest_state_1=‘defer’; 表示停止向log_archive_dest_1这个归档位置归档日志。
由于联机日志文件的重要性,因此应该以组的方式建立日志文件,数据库中至少要有两个日志文件组,同时每一个日志文件组至少要包含两个日志文件,每一个日志组里的所有的日志成员的内容都完全相同,如果一个日志文件损坏,只有组内的其他日志文件仍然可用,则该组仍然对外提供日志操作,不会宕机。
给一个联机日志组增加文件,可以使用alter database add logfile member'D:\app\Administrator\oradata\orcl\redo02a.ora' togroup 2;添加新的日志组:alter database add logfile group 4 'D:\app\Administrator\oradata\orcl\redo04.ora' size 10m;不同日志组可以不同大小,但是同一个组内的所有日志文件必须同样大小。
联机日志文件组有四种常见状态(从v$log中查看):1,CURRENT:表示这是当前正在使用的联机日志文件组2,ACTIVE:表示这个日志文件组中,所记录的重做记录所对应的内存中的脏数据块还没有被完全写入到数据文件中。
3,INACTIVE:表示这个日志文件组中,所记录的重做记录所对应的内存中的脏数据块已经被写入到数据文件中。
4,UNUSED:表示还没有被使用过。
从v$logfile中查看每一个联机日志文件的信息。
使用alter database clear logfile group <group号>;可以清除联机日志文件组内的所有成员,适用于日志文件组损坏了部分成员的情况,被清除的日志组必须是INACTIVE状态。
清除后的日志组的状态变成UNUSED。
数据库的日志归档方式有两种:1,手动归档允许用户手动归档非活动日志文件文件的已填充组, alter system switch logfile;2,自动归档。