ORACLE DB 的學習者們

2014年1月20日 星期一

安裝設定ORACLE Enterprise Manager (EM)

1. /etc/hosts:

127.0.0.1 localhost.localdomain localhost

::1 localhost6.localdomain6 localhost6

192.168.0.xx hostxx.toplogis.com hostxx

2. 移除錯誤的設定檔:

( http://www.stefanocislaghi.eu/2009/12/unable-to-run-dbconsole-oc4j.html )

$cd /oracle/app/oracle/product/11.2.0/dbhome_1/bin

[oracle@tap07 bin]$ ./emca -deconfig dbcontrol db -repos drop  

STARTED EMCA at Jan 21, 2014 11:22:25 AM
EM Configuration Assistant, Version 11.2.0.3.0 Production
Copyright (c) 2003, 2011, Oracle.  All rights reserved.

Enter the following information:
Database SID: ivdb
Listener port number: 1521
Password for SYS user:
Password for SYSMAN user:

----------------------------------------------------------------------
WARNING : While repository is dropped the database will be put in quiesce mode.
----------------------------------------------------------------------
Do you wish to continue? [yes(Y)/no(N)]: yes
Jan 21, 2014 11:22:47 AM oracle.sysman.emcp.EMConfig perform
INFO: This operation is being logged at /oracle/app/oracle/cfgtoollogs/emca/ivdb/emca_2014_01_21_11_22_25.log.
Jan 21, 2014 11:22:48 AM oracle.sysman.emcp.util.GeneralUtil initSQLEngineLoacly
WARNING: ORA-28000: the account is locked

Jan 21, 2014 11:22:48 AM oracle.sysman.emcp.ParamsManager checkListenerStatusForDBControl
WARNING: Error initializing SQL connection. SQL operations cannot be performed
Jan 21, 2014 11:22:48 AM oracle.sysman.emcp.EMDBPreConfig performDeconfiguration
WARNING: EM is not configured for this database. No EM-specific actions can be performed. Some of the possible reasons may be:
 1) EM is configured with different hostname then physical host. Set environment variable ORACLE_HOSTNAME= and re-run EMCA script
 2) ORACLE_HOSTNAME is set. Unset it and re-run EMCA script
Jan 21, 2014 11:22:48 AM oracle.sysman.emcp.EMReposConfig invoke
INFO: Dropping the EM repository (this may take a while) ...
Jan 21, 2014 11:24:56 AM oracle.sysman.emcp.EMReposConfig invoke
INFO: Repository successfully dropped
Enterprise Manager configuration completed successfully
FINISHED EMCA at Jan 21, 2014 11:24:56 AM
3. 進入該SID的環境

[oracle@tap07 bin]$ . setivdb

4. 新增設定檔

[oracle@tap07 bin]$ ./emca -config dbcontrol db -repos create

STARTED EMCA at Jan 21, 2014 11:25:37 AM
EM Configuration Assistant, Version 11.2.0.3.0 Production
Copyright (c) 2003, 2011, Oracle.  All rights reserved.

Enter the following information:
Database SID: ivdb
Listener port number: 1521
Listener ORACLE_HOME [ /oracle/app/oracle/product/11.2.0/dbhome_1 ]:
Password for SYS user:
Password for DBSNMP user:
Password for SYSMAN user:
Email address for notifications (optional):
Outgoing Mail (SMTP) server for notifications (optional):
-----------------------------------------------------------------

You have specified the following settings

Database ORACLE_HOME ................ /oracle/app/oracle/product/11.2.0/dbhome_1

Local hostname ................ tap07.toplogis.com
Listener ORACLE_HOME ................ /oracle/app/oracle/product/11.2.0/dbhome_1
Listener port number ................ 1521
Database SID ................ ivdb
Email address for notifications ...............
Outgoing Mail (SMTP) server for notifications ...............

-----------------------------------------------------------------
Do you wish to continue? [yes(Y)/no(N)]: yes
Jan 21, 2014 11:26:04 AM oracle.sysman.emcp.EMConfig perform
INFO: This operation is being logged at /oracle/app/oracle/cfgtoollogs/emca/ivdb/emca_2014_01_21_11_25_37.log.
Jan 21, 2014 11:26:05 AM oracle.sysman.emcp.EMReposConfig createRepository
INFO: Creating the EM repository (this may take a while) ...
Jan 21, 2014 11:33:01 AM oracle.sysman.emcp.EMReposConfig invoke
INFO: Repository successfully created
Jan 21, 2014 11:33:07 AM oracle.sysman.emcp.EMReposConfig uploadConfigDataToRepository
INFO: Uploading configuration data to EM repository (this may take a while) ...
Jan 21, 2014 11:34:25 AM oracle.sysman.emcp.EMReposConfig invoke
INFO: Uploaded configuration data successfully
Jan 21, 2014 11:34:29 AM oracle.sysman.emcp.util.DBControlUtil secureDBConsole
INFO: Securing Database Control (this may take a while) ...
Jan 21, 2014 11:34:37 AM oracle.sysman.emcp.util.DBControlUtil secureDBConsole
INFO: Database Control secured successfully.
Jan 21, 2014 11:34:37 AM oracle.sysman.emcp.util.DBControlUtil startOMS
INFO: Starting Database Control (this may take a while) ...
Jan 21, 2014 11:35:35 AM oracle.sysman.emcp.EMDBPostConfig performConfiguration
INFO: Database Control started successfully
Jan 21, 2014 11:35:35 AM oracle.sysman.emcp.EMDBPostConfig performConfiguration
INFO: >>>>>>>>>>> The Database Control URL is https://tap07.toplogis.com:1158/em <<<<<<<<<<<
Jan 21, 2014 11:35:37 AM oracle.sysman.emcp.EMDBPostConfig invoke
WARNING:
************************  WARNING  ************************

Management Repository has been placed in secure mode wherein Enterprise Manager data will be encrypted.  The encryption key has been placed in the file: /oracle/app/oracle/product/11.2.0/dbhome_1/tap07.toplogis.com_ivdb/sysman/config/emkey.ora. Ensure this file is backed up as the encrypted data will become unusable if this file is lost.

***********************************************************
Enterprise Manager configuration completed successfully
FINISHED EMCA at Jan 21, 2014 11:35:37 AM
5. 啟動與結束

啟動:emctl start dbconsole

結束:emctl stop dbconsole

6. 連線:

https://xx.xx.xx.xx:1158/em

2014年1月5日 星期日

MySQL安裝後之設定

【安裝MYSQL DB】

[root@218-161-48-34 bin]# mysql_install_db
Installing MySQL system tables...
OK
Filling help tables...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:

/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h 218-161-48-34.hinet-ip.hinet.net password 'new-pa                                             ssword'

Alternatively you can run:
/usr/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd /usr/mysql-test ; perl mysql-test-run.pl

Please report any problems with the /usr/bin/mysqlbug script!

[root@218-161-48-34 bin]# mysqld_safe  --user=mysql &
140105 23:36:50 mysqld_safe Logging to '/var/log/mysqld.log'.
140105 23:36:50 mysqld_safe Starting mysqld daemon with databases from /var/lib/
【安全設定】

[root@218-161-48-34 bin]# mysql_secure_installation




NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!


In order to log into MySQL to secure it, we'll need the current
password for the root user.  If you've just installed MySQL, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.

Set root password? [Y/n] Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] n
 ... skipping.

By default, MySQL comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y
 ... Success!

Cleaning up...



All done!  If you've completed all of the above steps, your MySQL
installation should now be secure.

Thanks for using MySQL!
【設定ROOT登入】

[root@218-161-48-34 bin]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 5.1.61 Source distribution

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> GRANT ALL PRIVILEGES ON *.* to 'root'@'%' IDENTIFIED BY ' xxxx ' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
【建立新的SCHEMA】

mysql> create schema if not exists david default character set='utf8';
Query OK, 1 row affected (0.01 sec)
【關閉MYSQL】

[root@218-161-48-34 bin]# mysqladmin -u root -p shutdown
Enter password:
140106 00:09:20 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
[1]+  Done                    mysqld_safe
啟動MYSQL

[root@david ~]# service mysql restart

確認MYSQL是否於啟動時自動啟動:

[root@david ~]# chkconfig --list | grep sql

將MYSQL 加入rc.local啟動項目:

[root@david ~]# chkconfig mysql on

以本機方式登入MySQL

[root@david ~]#mysql -u root –p

變更root可從遠端登入的 password

[root@david ~]# GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'xxxxx' WITH GRANT OPTION;

2014年1月2日 星期四

快速救回被砍之資料

--砍掉

delete from logmnr.employees where employee_id=12;

commit;

--找回來

select * from logmnr.employees as of timestamp

to_timestamp('2013-12-31 09:30:00', 'YYYY-MM-DD HH:MI:SS') where employee_id=12;

--復原

insert into logmnr.employees

(

select * from logmnr.employees as of timestamp

to_timestamp('2013-12-31 09:30:00', 'YYYY-MM-DD HH:MI:SS') where employee_id=12

);

commit;