Monthly Archives: August 2013

Insufficient storage available when updating apps on my Android

When updating apps via the Play Store, some apps will fail to update giving the ‘Insufficient storage available’ even when there is plenty of storage space available.

image

image

Results from Googling the error show different causes for the failure to update. In my particular case, the problem has something to do with the apps cache.

To overcome this issue, I used an app called App Cache Cleaner to clear the cache of all apps. After cleaning the cache, updates that failed before can now be updated successfully.

image

image

Adding Oracle Linux 6.4 Installation DVD as a yum repository

First, make sure the install DVD is mounted properly and take note of the mount point.  For the purpose of this post, the DVD is mounted at /mnt.

Next, create a repository file at the yum repository directory.

# vi /etc/yum.repos.d/dvd.repo

Insert the following lines inside the file, and save.

[ol6-dvd]
name=Oracle Linux 6.4 Installation DVD $basearch
baseurl=file:///mnt/Server/
enabled=1
gpgcheck=1
gpgkey=file:///mnt/RPM-GPG-KEY

[ol6-dvd-UEK]
name=Oracle Linux 6.4 Installation DVD $basearch - UEK
baseurl=file:///mnt/UEK2/
enabled=1
gpgcheck=1
gpgkey=file:///mnt/RPM-GPG-KEY

Now, the yum command will use the DVD as a repository.  Don’t forget to disable other repositories in the folder if you do not want newer packages to be installed.

Local mirror of Oracle public yum – UPDATED

Updating Oracle Linux installations via the Oracle public yum server has been cumbersome because the download speeds I have been getting are quite terrible.

Having quite a number of Oracle Linux installations compounds the issue as each server will have to endure the same slow download speeds for the same packages.  One way to stop this from happening is having a local mirror of the public yum server.  This local mirror will perform the download of the packages from the public yum server, and all other Oracle Linux installations will then grab the packages from the local mirror, saving lots of time.

I have been scouring the internet for days looking for the best way to do this, and I think the best guide so far comes from this post by Martin Nash.

I hope to setup my own mirror soon.


Update 19 August 2013

Below are the steps to setup yum mirror from a fresh CentOS 6.4 Minimal Install.

Create the directory to put the repository in.

# mkdir -p /repos/x86_64

Install the yum-utils and createrepo packages that provide the reposync and createrepo commands.

# yum install yum-utils createrepo

Set up the repository to mirror as per the instruction at Oracle.  Open the repo file and disable all repos by making sure enabled=0 for all repos.

# vi /etc/yum.repos.d/public-yum-ol6.repo

Run reposync.  This will take quite a long time, especially with the slow speeds from the Oracle public yum server.

# reposync --repoid=ol6-latest --repoid=ol6-UEK-latest -p /repos/ol6

After the reposync command finished downloading all the packages from the source repo, run createrepo to create the repository metadata.

# createrepo /repos/ol6/ol6_UEK_latest/getPackage/
# createrepo /repos/ol6/ol6_latest/getPackage/

Create a script to re-run the above as often as required (I am going to run it once a day).

#!/bin/bash
LOG_FILE=/repos/logs/orayum-update_$(date +%Y.%m.%d).log
/usr/bin/reposync --repoid=ol6_latest --repoid=ol6_UEK_latest -p /repos/ol6 >> $LOG_FILE 2>&1
/usr/bin/createrepo /repos/ol6/ol6_UEK_latest/getPackage/ >> $LOG_FILE 2>&1
/usr/bin/createrepo /repos/ol6/ol6_latest/getPackage/ >> $LOG_FILE 2>&1

Create the directories to store the script and logs, and move the script inside the directory

# mkdir -p /repos/logs
# mkdir -p /repos/scripts
# mv orayum-update.sh /repos/scripts

Make the script executable

# chmod +x /repos/scripts/orayum-update.sh

Add the script to crontab, and run once every day.

# crontab -e
0 0 * * * /repos/scripts/orayum-update.sh

# crontab -l
0 0 * * * /repos/scripts/orayum-update.sh

Install and configure Apache webserver.

# yum install httpd
# chkconfig httpd on
# service httpd start

Now configure Apache to serve the repository.

# mkdir -p /var/www/html/repo/OracleLinux/OL6/latest
# mkdir -p /var/www/html/repo/OracleLinux/OL6/UEK/latest
# ln -s /repos/ol6/ol6_latest/getPackage/ /var/www/html/repo/OracleLinux/OL6/latest/x86_64
# ln -s /repos/ol6/ol6_UEK_latest/getPackage/ /var/www/html/repo/OracleLinux/OL6/UEK/latest/x86_64

Open up the firewall for Apache.

# iptables -I INPUT 5 -p tcp --dport 80 -m state --state NEW -j ACCEPT
# service iptables save

Now we need to fix the SELinux contexts for the repository files, so that the repository, which is soft-linked from the /var/www/html sub-folders, can be served by Apache.

# yum install policycoreutils-python
# semanage fcontext -a -t httpd_sys_content_t "/repos/ol6/ol6_latest/getPackage(/.*)?"
# semanage fcontext -a -t httpd_sys_content_t "/repos/ol6/ol6_UEK_latest/getPackage(/.*)?"
# restorecon -R -v /repos/ol6/

Get the repository GPG key as well, and put it into the root Apache directory.

# cd /var/www/html
# wget http://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol6

Now the local yum mirror is fully setup!  Local Oracle Linux 6 installations can now use this repository by creating a repo file in /etc/yum.repos.d/ folder.

# cd /etc/yum.repos.d
# vi public-yum-ol6-local.repo

The repo file looks something like this:

[ol6_latest_local]
name=Oracle Linux $releasever Latest ($basearch)
baseurl=http://<hostname>/repo/OracleLinux/OL6/latest/$basearch/
gpgkey=http://<hostname>/RPM-GPG-KEY-oracle-ol6
gpgcheck=1
enabled=1

[ol6_UEK_latest_local]
name=Latest Unbreakable Enterprise Kernel for Oracle Linux $releasever ($basearch)
baseurl=http://<hostname>/repo/OracleLinux/OL6/UEK/latest/$basearch/
gpgkey=http://<hostname>/RPM-GPG-KEY-oracle-ol6
gpgcheck=1
enabled=1

Done!

Upgrade to Oracle 12c Exam

Just registered for the 1Z1-060 exam.  Time to read up!

New Features of Oracle Database 12c
Enterprise Manager and Other Tools
  • Use EM Express
  • Use OUI, DBCA for installation and configuration
Basics of Multitenant Container Database (CDB)
  • Identify the benefits of the multitenant container database
  • Explain root and multitenant architecture
Configuring and Creating CDBs and PDBs
  • Create and configure a CDB
  • Create and configure a PDB
  • Migrate a non-CDB to a PDB database
Managing CDBs and PDBs
  • Establish connection to a CDB/PDB
  • Start up and shut down a CDB/PDB
  • Change instance parameters for a CDB/PDB
Managing Tablespaces, Common and Local Users, Privileges and Roles
  • Manage tablespaces in a CDB/PDB
  • Manage users and privileges for CDB/PDB
Backup, Recovery and Flashback for a CDB/PDB
  • Perform backup of CDB and PDB
  • Perform recovery of CDB and PDB
  • Perform Flashback for a CDB
Information Lifecycle Management and Storage Enhancements
  • Use ILM features
  • Perform tracking and automated data placement
  • Use Online Move Datafile
In-Database Archiving and Valid-Time Temporal
  • Differentiate between IL and Valid-Time Temporal
  • Set and use Valid Time Temporal
  • Use In-Database archiving
Auditing
  • Enable and configure Unified Audit Data Trail
  • Create and enable audit policies
Privileges
  • Use administrative privileges
  • Create, enable and use privilege analysis
Oracle Data Redaction
  • Use and manage Oracle Data Redaction policies

RMAN and Flashback Data Archive

  • Use RMAN enhancements
  • Implement the new features in Flashback Data Archive
Real-Time Database Operation Monitoring
  • Implement real-time database operation monitoring
SQL Tuning
  • Use Adaptive Execution Plans
  • Use enhanced features of statistics gathering
  • Use Automatic SQL Plan Management
Emergency Monitoring, Real-Time ADDM, Compare Period ADDM, and Active Session History (ASH) Analytics
  • Perform emergency monitoring and real-time ADDM
  • Generate ADDM Compare Period
  • Diagnose performance issues using ASH enhancements
Resource Manager and Other Performance Enhancements
  • Use Resource Manager for a CDB and PDB
  • Explain Multi-process Multi-threaded Oracle architecture
  • Use Flash Cache
Index and Table Enhancements
  • Use Index enhancements
  • Use Table enhancements
  • Use Online operation enhancements
ADR and Network Enhancements
  • Explain ADR enhancements
Oracle Data Pump, SQL*Loader, External Tables and Online Operations Enhancements
  • Use Oracle Data Pump enhancements
  • Use SQL*Loader and External table enhancements
Partitioning Enhancements
  • Explain Partitioning enhancements
  • Explain Index enhancements for partitioned tables
SQL Enhancements
  • Use Oracle Database Migration Assistant for Unicode
  • Use Row limiting clause, and secure file LOBs enhancements
  • Configure extended datatypes
Key DBA Skills
Core Administration
  • Explain the fundamentals of DB architecture
  • Install and configure a database
  • Configure server and client network for a database
  • Monitor database alerts
  • Perform daily administration tasks
  • Apply and review patches
  • Back up and recover the database
  • Troubleshoot network and database issues
  • Detect and repair data failures with Data Recovery Advisor
  • Implement Flashback Technology
  • Load and Unload Data
  • Miscellaneous
    • Relocate SYSAUX occupants
    • Create a default permanent tablespace
    • Use the Redo Logfile Size Advisor
    • Use Secure File LOBs
    • Use Direct NFS
Performance Management
  • Design the database layout for optimal performance
  • Monitor performace
  • Manage memory
  • Analyze and identify performance issues
  • Perform real application testing
  • Use Resource Manager to manage resources
  • Implement Application Tuning
Storage
  • Manage database structures
  • Administer ASM
  • Manage ASM disks and diskgroups
  • Manage ASM instance
  • Manage VLDB
  • Implement Space Management
Security
  • Develop and implement a security policy
  • Configure and manage auditing
  • Create the password file
  • Implement column and tablespace encryption