Показаны сообщения с ярлыком Oracle. Показать все сообщения
Показаны сообщения с ярлыком Oracle. Показать все сообщения

пятница, 4 июля 2014 г.

Oracle перенос таблиц в другое табличное пространство

begin
  for tbl in (select t.table_name
                from all_tables t
               where t.owner = :usr
                 and t.tablespace_name = :oldtbs)
  loop
    dbms_output.put_line('ALTER TABLE ' || :usr || '.' || tbl.table_name ||
                         ' MOVE TABLESPACE ' || :newtbs || ';');
    -- индексы
    for indx in (select i.owner || '.' || i.index_name as nm
                   from all_indexes i
                  where i.tablespace_name = :oldtbs
                    and i.table_owner = :usr
                    and i.table_name = tbl.table_name)
    loop
      dbms_output.put_line('ALTER INDEX ' || indx.nm ||
                           ' REBUILD TABLESPACE ' || :newtbs || ';');
    end loop;
  end loop;
end;


где переменные означают следующее:
  • :oldtbs - старое табличное пространство
  • :usr - пользователь чьи таблицы вы собираетесь переносить
  • :newtbs - новое табличное пространство
Данный скрипт генерирует скрипты на перенос всех таблиц и индексов указанного пользователя из oldtbs в newtbs
P.S. никогда не создавайте пользователя в табличном пространстве SYSTEM.

воскресенье, 9 февраля 2014 г.

Sql Developer XE

При конекте ORA-12705: Cannot access NLS data files or invalid environment specified
Необходимо поменять локаль в настройка девелопера.
Добавляем в файл %SQLDEVELOPER_DIR%/sqldeveloper/bin/sqldeveloper.conf
AddVMOption -Duser.language=en
AddVMOption -Duser.region=us

четверг, 24 мая 2012 г.

Установка 11g R2 debian 6

Установка 11g R2 debian 6

aptitude install gcc make binutils libmotif4 lesstif2 rpm elfutils libelf1 libelfg0 libelfg0-dev eglibc-source libaio1 libaio-dev sysstat numactl libdb4.6 gawk x11-utils libstdc++6-4.4-dev xbase-clients
 ln -s /usr/bin/awk /bin/awk
    ln -s /usr/bin/rpm /bin/rpm
    ln -s /usr/bin/basename /bin/basename 

groupadd dba
useradd -g dba -s /bin/bash -d /home/oracle oracle
mkdir /home/oracle
chown oracle:dba /home/oracle
passwd oracle 
mkdir /u00
chown -R oracle.dba /u00
su oracle
nano ~/.profile
ORACLE_BASE=/u00/app/oracle
ORACLE_HOME=/u00/app/oracle/product/11.2.0/dbhome_1
ORACLE_SID=ipits
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_BASE ORACLE_SID ORACLE_HOME LD_LIBRARY_PATH PATH 
source ~/.profile 

копируем дистрибутив в папку /home/oracle/ora11
chmod u+x runInstaller
chmod u+x install/.oui
chmod u+x install/unzip 
Далее запускаем
 sh runInstaller
Установка будет с графического установщика. если на компе нет GUI  то ставьте X-server  и прокидывайте иксы на другую машину.

среда, 21 декабря 2011 г.

Установка Oracle XE на Debian

Для установки была выбрана Oracle xe 10(хотя и есть уже 11) и Debian 6.

Для установки Oracle ( далее xe)  необходимо 1 Gb  swap , не знаю как у вас но у меня столько нет. Поэтому добавим его (немного больше, чтобы наверняка):
dd if=/dev/zero of=/swpfs1 bs=1M count=1100
mkswap /swpfs1
swapon /swpfs1
Наверное вам не надо объяснять что эти команды надо выполнять с правами супер 
пользователя (root).

Далее нам необходимо добавить репозитарий с дистрибутивом
echo "deb http://oss.oracle.com/debian unstable main non-free" >> /etc/apt/sources.list

скачать PGP ключи
wget http://oss.oracle.com/el4/RPM-GPG-KEY-oracle -O- | sudo apt-key add -
Обновляем список доступного программного обеспечения
apt-get update
Устанавливаем
aptitude install oracle-xe
Специально выбрал не мультиязычную версию, а западно-европейскую. Потому что данная версия имеет однобайтовую кодировку и её можно конвертировать в "русскую" 
CL8MSWIN1251. Поэтому и не была выбрана 11 версия сервера,т.к. она не имеет 
однобайтового варианта.
В процессе установки скачается дистрибутив (около 250 М). Когда все установится необходимо выполнить конфигурацию сервера:
/etc/init.d/oracle-xe configure
В ней вы укажите порт для встроеного апача, порт для листенера, пароль для системных пользователей и признак автозагрузки.
Все можете работать, но у вас наверное не запускается sqlplus.
Для этого надо добавить в файл вашего профиля (/etc/profile) следующий код
ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
export ORACLE_HOME
NLS_LANG=`$ORACLE_HOME/bin/nls_lang.sh`
export NLS_LANG
SQLPATH=$ORACLE_HOME/sqlplus
export SQLPATH
PATH=$ORACLE_HOME/bin:$PATH
export PATH
ORACLE_SID=XE
export ORACLE_SID

Чебы можно было работать каким либо пользователем ОС кроме пользователя oracle  , надо добавить пользователя в группу dba (существующего пользователя например так 
usermod -a -G dba user (вместо user  имя вашего пользователя)
)