赞
踩
1、掌握安装oracle客户端方法
2、掌握配置oracle客户方法
3、通过简单操作验证死锁现象
第一步 去网页搜索“oracle 19c”,选择官网Oracle 19c的链接。
第二步 选择官网第一个下载,注意下载Oracle需要注册账号才能下载。
第三步 下载好之后解压缩,找到setup.exe 选择以管理员身份运行。
第四步 根据安装向导安装,选择“创建并配置单实例数据库”,点击“下一步”。
系统类选择“桌面类”,点击“下一步”。
Oracle主目录用户选择“使用Windows内置账户”,点击“下一步”。
在弹出的对话框选择是否确实要继续,点击“是”。
典例安装配置的数据库版本选择“标准版2”,自己设置全局数据库名和口令(请自己记住),取消勾选“创建为容器数据库”,点击“下一步”。
这里记住自己的Oracle系统标识符(SID),后续使用Oracle连接工具要用到,最后点击“安装”。
准备:从数据库管理员处获得关于数据库的关键参数(服务器地址、数据库服务名、数据库服务端口);从数据库管理员处获得用户的账号和密码
具体操作:
1、启动oracle网络配置助手,配置Oracle。
从开始菜单找到Oracle的“net configration assistant”
选择“命名方法配置”,然后“下一步”。
这里确保选定的命名方法中包含“本地命名”和“轻松连接命名”,点击“下一步”。
然后选择“本地Net服务名配置”,点击“下一步”。
将远程服务器的服务添加为本地服务名,选择“添加”,点击“下一步”。
配置服务名,点击“下一步”。
选择“TCP”协议,点击“下一步”。
依次填写管理员提供的数据库关键参数,然后点击“下一步”。
选择“是,进行测试”。
点击“更改登录”,在更改登录对话框填写自己的用户名和口令,点击“确定”,在详细信息看到“测试成功”,然后点击“下一步”。
连接测试通过后填写自定义本地网络服务名(请记住,连接服务器要用到),然后下一步,然后出现是否配置另一个服务器界面,点击“否”,最后点击“下一步”,配置完成。
输入“sqlplus +自己用户名+@+自己设置的网络服务名”,然后输入口令,然后如下图登录成功。
输入简单查询语句:
select table_name from user_tables;
desc emp;
1、用sqlplus连接数据库,执行
UPDATE dept SET loc='LOUDI' WHERE deptno = 40;
2、用SQL DEVELOPER连接数据库,执行
UPDATE emp SET deptno =40 WHERE ename LIKE 'S%';
UPDATE dept SET loc = 'BEIJING' WHRE deptno = 40;
3、返回SQLPLUS ,执行
UPDATE emp SET deptno=10 WHERE ename LIKE 'S%';
下图是我提前在桌面记事本写的第2点的语句,来验证死锁。
这样就会发生死锁,在这个情景中,死锁的原因是由于两个会话之间互相持有对方需要的资源并相互等待对方释放资源,从而导致两个会话都无法继续执行的情况。
具体来说,在步骤1中,SQLPLUS会话更新了dept表中deptno为40的行,但并未提交事务。在步骤2中,SQL Developer会话先更新了emp表中ename以’S’开头的员工的deptno为40,然后尝试更新dept表中deptno为40的行,但由于SQLPLUS会话持有了该行资源且未释放,导致SQL Developer会话被阻塞等待。在步骤3中,SQLPLUS会话又尝试更新emp表,但此时被步骤2中的SQL Developer会话持有的资源阻塞,于是发生了死锁。
要避免这种死锁现象,可以考虑以下几种方法:
避免长时间持有资源:尽量缩短事务持有资源的时间,避免一个事务同时修改多个表或多行数据。
按照固定的顺序访问资源:可以约定访问表的顺序,比如先更新dept表再更新emp表,以减少死锁的概率。
使用事务隔离级别:可以调整会话的事务隔离级别,如将隔离级别设置为READ COMMITTED,可以减少死锁的概率。
使用锁机制:可以在更新时使用合适的锁机制,如行级锁或表级锁,以减少死锁的发生。
监控和处理死锁:数据库管理系统通常提供了监控和处理死锁的工具和方法,可以及时发现和解决死锁问题。
通过合理设计数据库操作、事务管理和锁机制,可以有效地减少死锁的发生,提高系统的并发性能和稳定性。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。