HOAB

History of a bug

Oracle 12c et Debian

Rédigé par gorki Aucun commentaire

Le problème :

Après mon article "C'est galère d'installer Oracle XE sur windows 7 64 bits. Parfois ça marche, parfois ça marche pas." Je me suis décidé à utiliser une autre distribution non supportée pour installer Oracle.

Si, si...

Bon après CentOS c'est bien aussi (y'a pas fail2ban par défaut mais c'est bien quand même.).

Pour des bases de développement évidemment. Je ne veux pas voir ça ailleurs..

Solution :

On utilise Oracle EE disponible sur le site d'Oracle

  1. Creation user oracle
  2. Mot de passe oracle
  3. Mettre à jour le .bashrc comme on veut
  4. xhost + en root pour utiliser l'installateur graphique avec l'utilisateur oracle
  5. Les binaires se téléchargent ici : https://wiki.debian.org/DataBase/Oracle
    1. Attention, pas la distribution zlinux évidemment
  6. Les prérequis des librairies (et un certains nombres de tâches décrites ci-dessus) :
    1. https://github.com/antonioluna/oracle12c-debian/blob/master/Pre-install.sh
    2. c'est trop bien...
  7. Dans le .bashrc :
export ORACLE_HOME
export ORACLE_SID
  1. Installation de rlwrap si lors du lancement de sqlplus ca merde
apt-get install rlwrap
  1. Dans mon user oracle
cd ~/oracle-product/product/12.1.0/dbhome_1/dbs$
mv init.ora /home/oracle/oracle-product/product/12.1.0/dbhome_1/dbs/init<MABASE>.or
  1. Creation du repertoire de la base
mkdir /home/oracle/oradata/<MA BASE>
  1. create database
    1. https://docs.oracle.com/cd/B28359_01/server.111/b28310/create003.htm#ADMIN1107
  2. Editer le fichier /home/oracle/oracle-product/product/12.1.0/dbhome_1/dbs/init<MABASE>.ora

# Change '<ORACLE_BASE>' to point to the oracle base (the one you specify at
# install time)

db_name='MABASE'
memory_target=512M
processes = 150
audit_file_dest='/home/oracle/oracle-product/admin/orcl/adump'
audit_trail ='db'
db_block_size=8192
db_domain=''
db_recovery_file_dest='/home/oracle/oracle-product/fast_recovery_area'
db_recovery_file_dest_size=2G
diagnostic_dest='/home/oracle/oracle-product'
dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)'
open_cursors=300
remote_login_passwordfile='EXCLUSIVE'
undo_tablespace='UNDOTBS1'
# You may want to ensure that control files are created on separate physical
# devices
control_files = (/home/oracle/oradata/mabase/ora_control1, /home/oracle/oradata/mabase/ora_control2)
compatible ='11.2.0'
  1. Recommencer si cela n'a pas fonctionné :

rm -rf /home/oracle/oradata/mabase/*

  1. Creation du user : sqlplus / as sysdba
STARTUP NOMOUNT;

CREATE DATABASE mybase
   USER SYS IDENTIFIED BY lozenge
   USER SYSTEM IDENTIFIED BY lozenge
   LOGFILE GROUP 1 ('/home/oracle/oradata/mybase/redo01.log') SIZE 100M,
           GROUP 2 ('/home/oracle/oradata/mybase/redo02.log') SIZE 100M,
           GROUP 3 ('/home/oracle/oradata/mybase/redo03.log') SIZE 100M
   MAXLOGFILES 5
   MAXLOGMEMBERS 5
   MAXLOGHISTORY 1
   MAXDATAFILES 100
   CHARACTER SET WE8MSWIN1252
   NATIONAL CHARACTER SET AL16UTF16
   EXTENT MANAGEMENT LOCAL
   DATAFILE '/home/oracle/oradata/mybase/system01.dbf' SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
   SYSAUX DATAFILE '/home/oracle/oradata/mybase/sysaux01.dbf' SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
   DEFAULT TABLESPACE calv14
      DATAFILE '/home/oracle/oradata/mybase/database.dbf'
      SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
   DEFAULT TEMPORARY TABLESPACE tempts1
      TEMPFILE '/home/oracle/oradata/mybase/temp01.dbf'
      SIZE 350M REUSE
   UNDO TABLESPACE undotbs1
      DATAFILE '/home/oracle/oradata/mybase/undotbs01.dbf'
      SIZE 350M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;

@${ORACLE_HOME}/rdbms/admin/catalog (long)
@${ORACLE_HOME}/rdbms/admin/catproc <-- dba_data_files est créé ici (encore plus long)
  1. Recommencer si cela n'a pas fonctionné :
    1.  drop user userBase cascade;
  2. Creation du user :
define SG_SCHEMA = 'userBase'
define DEFAULT_TBS = 'mytbs'
define TEMP_TBS = 'tempts1'

CREATE USER &SG_SCHEMA IDENTIFIED BY password
       DEFAULT   TABLESPACE &DEFAULT_TBS
       TEMPORARY TABLESPACE &TEMP_TBS
;
grant connect to &SG_SCHEMA;      
grant resource to &SG_SCHEMA;
GRANT UNLIMITED TABLESPACE TO &SG_SCHEMA;
GRANT CREATE SYNONYM TO &SG_SCHEMA ;
GRANT CREATE VIEW TO &SG_SCHEMA ;

 

datapump (expdp) et virtualbox répertoire partagé

Rédigé par gorki Aucun commentaire

Le problème :

Utiliser expdp (export Oracle) pour dumper une base sur un répertoire partagé VirtualBox

 

Solution :

 

ça ne marche pas.

J'ai testé plusieurs choses :

ça ne marche pas sous l'OS

  • mettre les droits du répertoire partagé à l'utilisateur oracle via chown/chmod. Ce n'est pas possible (même dans les sous-répertoires)

ça marche sous l'OS (je peux créer des répertoires/fichier), ça ne marche pas avec expdp :

  • ajouter l'utilisateur oracle au groupe vboxsf.  (ORA-39070)
  • monter le répertoire partagé pour l'utilisateur oracle (cf ce lien). (ORA-39070)
  • utiliser un répertoire local pour le LOG et le partagé pour le dump (cf ce lien). (ORA-27054)

Au final je dump en local sur ma VM après avoir fait de la place.

Les commandes utiles :

  • pour remonter le disque partager pour un autre user que root
mount -t vboxsf -o uid=1000,gid=1000 <folder name given in VirtualBox> /home/<user>/where/ever/you/want

 

Oracle XE 11G2 et Windows 7 64 bits

Rédigé par gorki Aucun commentaire

Le problème :

C'est galère d'installer Oracle XE sur windows 7 64 bits.

Parfois ça marche, parfois ça marche pas.

Solution 1 (non testée) :

Installer Oracle complet, disponible pour utilisation personnelle en version 64 bits.

Solution 2 :

Une erreur se produit à l'installation (fichier introuvable : KEY_XE.reg). D'après ces sites : ici et , il faut, pendant l'installation, copier le fichier en question dans le répertoire temporaire de l'installation. Le 2ème site propose un petit .bat (key_oracle.bat) pour l'installer dans tous les répertoires temporaires, (l'installation silencieuse n'a pas marché chez moi, mais c'est basé sur des délais, donc variable suivant les environnements), à exécuter après avoir fait tous les choix, au début de l'installation proprement dite.

Plusieurs problèmes peuvent se poser après l'installation :

  • pas de base créée (répertoire C:\oraclexe\app\oracle\oradata\XE vide).

    • là c'est mort
    • en général c'est le problème du KEY_XE.reg, mais je ne suis pas sur
    • peut-être que "sys" comme mot de passe pose problème (?!?)
  • le TNS XE n'est plus reconnu (ORA-12514:No TNS Listener)

    • a priori cela se produit quand on arrête les services OracleServiceXE ou OracleXETNSListener et qu'on les redémarre,
    • ajouter la description du SID XE dans le fichier <ORACLE_HOME>/network/admin/listener.ora
    (SID_DESC =
      (SID_NAME = XE)
      (ORACLE_HOME = c:\oraclexe\app\oracle\product\11.2.0\server)
    )
  • sur expdp :ORA-12638.

    • solution ici
    • modifier le fichier <oracle home>/network/admin/sqlnet.ora
SQLNET.AUTHENTICATION_SERVICES= (NTS)

en

SQLNET.AUTHENTICATION_SERVICES= (NONE)
  • le port 8080 est utilisé

select dbms_xdb.gethttpport as "HTTP-Port"
            , dbms_xdb.getftpport as "FTP-Port" from dual;
begin
     dbms_xdb.sethttpport('80');
     dbms_xdb.setftpport('2100');
end;
/

Trucs à savoir

  • le service HTTP est démarré par le service OracleXE
  • se logguer en "/ as sysdba" est compliqué (il faut que votre user soit dans un groupe ActiveDirectory précis) : à oublier
  • ne pas oublier le mot de passe SYSTEM / SYS indiqué lors de l'installation c'est la clé de tout, et comme on ne peut pas utiliser le sysdba c'est impossible à changer
  • seul deux services sont nécessaires pour la base : OracleServiceXE ou OracleXETNSListener. Et pas besoin de les mettre en démarrage automatique
Fil RSS des articles de ce mot clé