在给数据库打补丁的时候,看文档中都有一个步骤"SQL> @catbundle.sql psu apply",那么这个脚本是不是每次打补丁都要去执行呢。
下图是截自补丁的readme
总结来说就是:
1. dbca图形化创建的数据库实例,需要执行catbundle.sql
2. dbca -silent静默方式创建的数据库实例,需要执行catbundle.sql
注意这里的数据库实例既包含打补丁之前已经存在的,还包含打补丁之后新建的。
如果之前打过补丁,并且执行过catbundle.sql,那么这次再打补丁就不需要再执行一次catbundle.sql了。
查阅MOS(Doc ID 605795.1)
可以看到即使是上面不需要执行catbundle.sql的情况,执行catbundle.sql也没啥坏处,而且还能将打补丁的信息注册到dba_registry_history表中。特别注意这里的第二段话,如果你在打补丁之后,用dbca建库,他自动会在dba_registry_history记录补丁信息,但是仍然需要你再执行一次catbundle.sql。